Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?[출석]반… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 7회
Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?

[출석]

반강사요일인원
A윤서월10
A윤서화12
A도현월8
B하린월15
B하린화5
SELECT *
  FROM 출석
 PIVOT (SUM(인원) FOR 요일 IN ('월' AS 월, '화' AS 화))
 ORDER BY 반, 강사;
1
반월화
A1812
B155
2
반강사월화
A도현8(null)
A윤서10(null)
A윤서(null)12
B하린15(null)
B하린(null)5
3
반강사월화
A도현8(null)
A윤서1012
B하린155
4
반강사월화
A도현80
A윤서1012
B하린155
해설

PIVOT 은 집계 열(인원)과 FOR 열(요일)을 뺀 나머지 열 반·강사를 모두 그룹 기준으로 삼으므로 (A, 도현)·(A, 윤서)·(B, 하린)의 3행이 된다.

도현은 화요일 데이터가 없어 화 열이 0 이 아닌 NULL 이며, 같은 그룹의 월·화 값은 한 행으로 합쳐진다.

  • 반별 2행 표는 강사 열도 그룹 기준이 된다는 점을 놓친 결과로, 인라인 뷰로 강사를 빼야 나온다.
  • 도현의 화를 0 으로 본 표는 값이 없는 칸이 NULL 이라는 점을 놓친 것이다.
  • 원본 5행이 그대로 남은 표는 PIVOT 이 그룹별로 행을 합친다는 점을 무시한 결과이다.

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

이어서 풀어보기

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