다음 SQL의 결과 행 수는?[처방상세]상세번호약품코드용법수량1A식후5… | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 6회
다음 SQL의 결과 행 수는?

[처방상세]

상세번호약품코드용법수량
1A식후5
2A식후6
3A식전4
4A(null)10
5A(null)(null)
6B식후12
7B(null)(null)
8B(null)(null)
9C식전3
10C식전7
SELECT 약품코드, 용법, COUNT(*) AS 건수
  FROM 처방상세
 GROUP BY 약품코드, 용법
HAVING SUM(수량) >= 10
 ORDER BY 약품코드, 용법;
1
4
2
3
3
5
4
6
해설

그룹은 (A,식후)·(A,식전)·(A,NULL)·(B,식후)·(B,NULL)·(C,식전) 6개이고, HAVING SUM(수량) >= 10 을 만족하는 그룹은 합계 11·10·12·10 인 4개다.

(A,NULL)은 NULL 수량을 빼고 10 이라 남지만, 수량이 모두 NULL 인 (B,NULL)은 SUM 이 NULL 이라 비교가 UNKNOWN 이 되어 빠지고 (A,식전)은 4 라 빠진다.

  • 용법이 NULL 인 행도 하나의 그룹이 되므로 3이 아니다.
  • (B,NULL)의 합계는 0 이 아니라 NULL 이라 5가 아니다.
  • HAVING 으로 걸러지는 그룹이 있어 6이 아니다.

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

이어서 풀어보기

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