Oracle 기준으로 다음 SQL 결과의 행 수와 열 수를 순서대로 나… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
Oracle 기준으로 다음 SQL 결과의 행 수와 열 수를 순서대로 나열한 것은?[예약]
| 예약번호 | 편명 | 등급 | 운임 |
|---|---|---|---|
| 1 | KE101 | BIZ | 500 |
| 2 | KE101 | ECO | 200 |
| 3 | KE101 | ECO | 150 |
| 4 | OZ330 | ECO | 180 |
| 5 | OZ330 | BIZ | 450 |
SELECT *
FROM 예약
PIVOT (SUM(운임) FOR 등급 IN ('BIZ' AS BIZ, 'ECO' AS ECO))
ORDER BY 예약번호;1
2, 3
2
5, 3
3
2, 4
4
5, 4
해설
PIVOT 은 집계(운임)와 FOR(등급)에 쓰지 않은 나머지 열 예약번호·편명을 암시적 GROUP BY 기준으로 삼으므로, 예약번호마다 한 행씩 5행에 예약번호·편명·BIZ·ECO 4열이 된다.
편명별 2행으로 합치려면 FROM 에 편명·등급·운임만 고른 인라인 뷰를 두어야 한다.
- 2행·3열은 인라인 뷰로 예약번호를 뺐을 때의 결과이다.
- 5행·3열은 예약번호 또는 편명 열이 결과에서 사라진다고 본 것이다.
- 2행·4열은 편명으로만 묶이면서 예약번호도 남는다고 본 것이다.
오류나 개정된 내용이 보이면 알려주세요