책 내용 질문하기
select문 내에서 where과 having의 관계
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
135,139
조회수
340
작성일
2020-04-18
작성자
탈퇴*원
첨부파일

2권 8장 section076 135 139쪽 내용입니다.

 

where과 group by가 함께있을때 해석을 어떻게 해야할 지 질문드립니다.

 

p139 문제의 경우 동영상강의나 해설에 적힌대로 썼을 때

 

select 소속도시, avg(매출액)

from 지점정보

where 매출액>1000

group by 소속도시

having count(*)>=3;

 

이 되는데 135쪽 설명대로라면 이건

소속도시별로 그룹화하되 매출액이 1000 초과인 튜플에 대해서 3개 이상일 경우를 출력한다고 생각합니다.

 

하지만 139쪽 문제에선 지점이 3개 이상인 도시에 대해 각 도시별로 그 도시에서 매출액이 1000을 초과하는 지점들의 평균 매출액을 구하라고 합니다.

위 sql의 having을 먼저 적용한 것입니다.

 

조건을 해석할 때 where의 조건을 만족하는 having으로 해석해야하는지 반대로 having조건을 만족하는 where으로 해석해야하는지 답변 부탁드립니다.

답변
2020-04-21 17:56:56

안녕하세요 길벗수험서 운영팀입니다.

 

SQL 또한 절차라는 것을 염두에 두세요.

 

from where를 통해 수행된 결과 튜플을 바탕으로

group by를 수행하여 그룹화 한 후

having 조건을 만족하는 튜플만을 추출하게 됩니다.

 

이를 바탕으로 오라클에서 지점정보(소속도시, 매출액) 테이블에 데이터를

(서울, 500)

(서울, 1500)

(서울, 2000)

이렇게 삽입하고 정답의 코드를 수행하게 되면,

 

아무것도 출력되지 않게됩니다.

from where를 적용한 이후 group by를 하게 되면, 서울 그룹에 튜플이 2개밖에 없기 때문이죠.

 

 

행복한 하루되세요 :)

  • 관리자
    2020-04-21 17:56:56

    안녕하세요 길벗수험서 운영팀입니다.

     

    SQL 또한 절차라는 것을 염두에 두세요.

     

    from where를 통해 수행된 결과 튜플을 바탕으로

    group by를 수행하여 그룹화 한 후

    having 조건을 만족하는 튜플만을 추출하게 됩니다.

     

    이를 바탕으로 오라클에서 지점정보(소속도시, 매출액) 테이블에 데이터를

    (서울, 500)

    (서울, 1500)

    (서울, 2000)

    이렇게 삽입하고 정답의 코드를 수행하게 되면,

     

    아무것도 출력되지 않게됩니다.

    from where를 적용한 이후 group by를 하게 되면, 서울 그룹에 튜플이 2개밖에 없기 때문이죠.

     

     

    행복한 하루되세요 :)

  • 관리자
    2020-04-23 15:20:19

    안녕하세요 길벗수험서 운영팀입니다.

     

    예, 맞는 말씀입니다.

     

    해당 <조건>은 말씀하신대로 조금 더 적합할 수 있도록 이후 수정토록 하겠습니다.

     

    행복한 하루되세요 :)

  • *
    2020-04-21 22:37:34

    안녕하세요 길벗수험서 운영팀입니다.

     

    SQL 또한 절차라는 것을 염두에 두세요.

     

    from where를 통해 수행된 결과 튜플을 바탕으로

    group by를 수행하여 그룹화 한 후

    having 조건을 만족하는 튜플만을 추출하게 됩니다.

     

    이를 바탕으로 오라클에서 지점정보(소속도시, 매출액) 테이블에 데이터를

    (서울, 500)

    (서울, 1500)

    (서울, 2000)

    이렇게 삽입하고 정답의 코드를 수행하게 되면,

     

    아무것도 출력되지 않게됩니다.

    from where를 적용한 이후 group by를 하게 되면, 서울 그룹에 튜플이 2개밖에 없기 때문이죠.

     

     

    행복한 하루되세요 :)

     

     

    -------------------------------------------------------------------------------------------

     

    그렇다면 이 해당 문제(p139 Q4)는 오류인걸까요?

     

    <조건>대로라면 지점이 세 군데 이상 있는 도시에 대해 각 도시별로 그 도시에서 매출액이 1000을 초과하는 지점들의 평균 매출액을 구하시오.

    라는데..

     

    답변의 예시대로면 서울은 지점이 3군데 이상 있으므로, 서울은 출력이 되어야 하고 서울 내의 매출액이 1000이 넘는 2개 지점의 평균을 구하여라라고 조건을 해석해야 하지 않을까 싶어서 그렇습니다.

     

     

    만약 아무것도 출력이 되지 않는 것을 의도하였다면, 문제의 조건은 매출액이 1,000을 초과하는 지점이 3군데 이상 있는 도시에 대해 그 도시에서 매출액이 1,000을 초과하는 지점들의 평균 매출액을 구하시오. 라고 변경되어야 하지 않을까 싶습니다.

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