다음 SQL의 결과 행 수는?[탑승]탑승권번호편명등급T01KE101YT… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL의 결과 행 수는?[탑승]
| 탑승권번호 | 편명 | 등급 |
|---|---|---|
| T01 | KE101 | Y |
| T02 | KE101 | Y |
| T03 | KE101 | C |
| T04 | KE101 | (null) |
| T05 | OZ202 | Y |
| T06 | OZ202 | (null) |
| T07 | OZ202 | (null) |
| T08 | KE303 | C |
| T09 | KE303 | C |
| T10 | KE303 | Y |
SELECT 편명, 등급, COUNT(*) AS 건수 FROM 탑승 GROUP BY 편명, 등급 HAVING COUNT(등급) >= 1 ORDER BY 편명, 등급;
1
5
2
3
3
10
4
7
해설
GROUP BY 편명, 등급은 NULL 등급도 하나의 그룹으로 만들어 7개 그룹이 생기지만, COUNT(등급)은 NULL 을 세지 않아 NULL 그룹은 0 이 되어 HAVING 에서 빠진다.
KE101-Y·KE101-C·OZ202-Y·KE303-C·KE303-Y 의 5행이 남는다.
- 7은 HAVING 조건을 COUNT(*)로 본 그룹 수다.
- 3은 편명 수만 센 값이다.
- 10은 그룹화 전 원본 행 수다.
오류나 개정된 내용이 보이면 알려주세요