다음 SQL의 결과 행 수는?[배송]배송번호지역상태D1서울완료D2서울완… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지

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

[배송]

배송번호지역상태
D1서울완료
D2서울완료
D3서울취소
D4부산완료
D5부산(null)
D6(null)완료
D7(null)대기
D8부산대기
D9서울대기
D10부산(null)
SELECT 지역, 상태, COUNT(*) AS 건수
  FROM 배송
 WHERE 상태 <> '취소'
 GROUP BY 지역, 상태
 ORDER BY 지역, 상태;
1
5
2
7
3
6
4
4
해설

상태 <> '취소' 는 D3 뿐 아니라 상태가 NULL 인 D5·D10 도 UNKNOWN 이라 제외하고, 남은 7행을 (지역, 상태)로 묶으면 NULL 지역도 하나의 그룹이 된다.

그룹은 (서울,완료)·(서울,대기)·(부산,완료)·(부산,대기)·(NULL,완료)·(NULL,대기) 의 6개다.

  • 지역이 NULL 인 두 그룹을 빼면 4행이 되지만 GROUP BY 는 NULL 을 버리지 않는다.
  • NULL 지역을 한 그룹으로 합치면 5행이지만 상태가 달라 두 그룹이다.
  • 상태 NULL 행을 남겨 (부산,NULL) 그룹을 만들면 7행으로 잘못 센다.

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

이어서 풀어보기

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