책 내용 질문하기
정처기 실기 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(총액)이라는 조건은 항상 성립하게 되고, 결국 모든 튜플의 상호, 총액을 조회하는 질의문의 되어버리는 것이죠.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.