다음 두 SQL ㉠, ㉡의 결과 행 수를 차례로 나타낸 것은?[청구]청… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 두 SQL ㉠, ㉡의 결과 행 수를 차례로 나타낸 것은?

[청구]

청구번호고객번호청구액
1C1120
2C130
3C260
4C250
5C390
6C4200
7C4(null)
8C540
9C530
10C520
㉠ SELECT 고객번호, SUM(청구액)
     FROM 청구
    WHERE 청구액 >= 100
    GROUP BY 고객번호;

㉡ SELECT 고객번호, SUM(청구액)
     FROM 청구
    GROUP BY 고객번호
   HAVING SUM(청구액) >= 100;
1
2, 3
2
5, 3
3
2, 2
4
3, 2
해설

㉠은 WHERE 가 그룹화 전에 행 단위로 걸러 청구액 100 이상인 행이 있는 C1·C4만 남아 2행이다.

㉡은 모든 행을 묶은 뒤 HAVING 이 합계를 걸러 C1(150)·C2(110)·C4(200)의 3행이고, C3·C5는 합계 90이라 빠진다.

  • 3, 2는 WHERE 와 HAVING 의 결과를 서로 바꾼 것이다.
  • 2, 2는 C2 처럼 작은 청구를 합쳐 100 이상이 되는 그룹을 놓쳤다.
  • 5, 3은 WHERE 로 행이 모두 빠진 그룹도 남는다고 보았다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 10회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기