책 내용 질문하기
정처기 실기 2권 174쪽 15번
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
174
조회수
168
작성일
2020-07-15
작성자
탈퇴*원
첨부파일
이것도 답이 될 수 있을까요?
SELECT 상호, 총액
FROM 거래내역
GROUP BY 상호
HAVING 총액 = MAX(총액);
답변
2020-07-16 13:23:58
안녕하세요 길벗수험서 운영팀입니다.
안됩니다. group by의 원리를 잘못 이해하신듯 합니다.
group by는 같은 속성값을 지닌 튜플들을 묶어서 출력합니다.
회원님의 질의문(SQL)을 보면 '상호'로 그룹을 묶으셨는데 이경우, 본래 테이블과 다를바가 없어집니다.
각 튜플에서 겹치는 '상호' 속성의 값이 존재하지 않으니까요.
having은 각 그룹별로 조건을 적용합니다.
각 그룹(여기서는 각 튜플과 다름 없는)은 하나의 튜플만을 갖고 있기 때문에 총액=max(총액)이라는 조건은 항상 성립하게 되고, 결국 모든 튜플의 상호, 총액을 조회하는 질의문의 되어버리는 것이죠.
행복한 하루되세요 :)
-
관리자2020-07-16 13:23:58
안녕하세요 길벗수험서 운영팀입니다.
안됩니다. group by의 원리를 잘못 이해하신듯 합니다.
group by는 같은 속성값을 지닌 튜플들을 묶어서 출력합니다.
회원님의 질의문(SQL)을 보면 '상호'로 그룹을 묶으셨는데 이경우, 본래 테이블과 다를바가 없어집니다.
각 튜플에서 겹치는 '상호' 속성의 값이 존재하지 않으니까요.
having은 각 그룹별로 조건을 적용합니다.
각 그룹(여기서는 각 튜플과 다름 없는)은 하나의 튜플만을 갖고 있기 때문에 총액=max(총액)이라는 조건은 항상 성립하게 되고, 결국 모든 튜플의 상호, 총액을 조회하는 질의문의 되어버리는 것이죠.
행복한 하루되세요 :)