Oracle 에서 [예약] 테이블에 다음 SQL 을 실행한 결과로 옳은… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
Oracle 에서 [예약] 테이블에 다음 SQL 을 실행한 결과로 옳은 것은?[예약]
| 예약번호 | 객실 | 요일 | 인원 |
|---|---|---|---|
| 1 | A | 토 | 2 |
| 2 | A | 일 | 3 |
| 3 | A | 토 | 1 |
| 4 | B | 토 | 4 |
| 5 | C | 금 | 2 |
| 6 | C | 금 | 3 |
| 7 | D | 일 | 2 |
SELECT *
FROM (SELECT 객실, 요일, 인원 FROM 예약)
PIVOT (SUM(인원)
FOR 요일 IN ('토' AS 토, '일' AS 일))
ORDER BY 객실;1
| 객실 | 토 | 일 |
|---|---|---|
| A | 3 | 3 |
| B | 4 | (null) |
| D | (null) | 2 |
2
| 객실 | 토 | 일 |
|---|---|---|
| A | 3 | 3 |
| B | 4 | 0 |
| C | 0 | 0 |
| D | 0 | 2 |
3
| 객실 | 토 | 일 | 금 |
|---|---|---|---|
| A | 3 | 3 | (null) |
| B | 4 | (null) | (null) |
| C | (null) | (null) | 5 |
| D | (null) | 2 | (null) |
4
| 객실 | 토 | 일 |
|---|---|---|
| A | 3 | 3 |
| B | 4 | (null) |
| C | (null) | (null) |
| D | (null) | 2 |
해설
PIVOT은 IN 목록에 적은 '토'·'일'만 열로 만들고, 인라인 뷰에 남은 객실로 묶으므로 객실 A·B·C·D 네 행이 나온다.
객실 C 는 금요일 예약뿐이라 두 피벗 열이 모두 NULL 인 행으로 남고, 값이 없는 칸은 SUM 대상이 없어 0 이 아닌 NULL 로 표시된다.
- 객실 C 가 빠진 표는 IN 목록 밖 값만 가진 그룹이 사라진다고 본 것이다.
- 빈 칸을 0 으로 채운 표는 집계 대상이 없는 SUM 이 0 을 돌려준다고 본 것이다.
- 금 열이 생긴 표는 IN 목록에 없는 값도 열로 펼쳐진다고 본 것이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 1회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- 다음sql결과에알맞는쿼리을작성하시오. selectname,scorefrom성적(1)by(2)(3) 1.order 2.score 3.desc2022년 정보처리기사실기 1회차
- 다음sql결과에알맞는답을작성하시오. [table] selectcount(col2) fromtable wherecol1in(2,3)orcol2in(3,5); 42022년 정보처리기사실기 2회차
- sql문에서괄호안에알맞은답안을작성하시오. ('이름'이란컬럼에'이'로시작하는문자열을'내림차순'하는쿼리결과내용입니다.) select....from...where이름l2021년 정보처리기사실기 2회차