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

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

[출고]

출고번호창고수량
1A20
2A30
3A50
4B40
5B(null)
6B60
SELECT 창고, 출고번호, 수량,
       RATIO_TO_REPORT(수량)
         OVER (PARTITION BY 창고) AS 비율
  FROM 출고
 ORDER BY 창고, 출고번호;
1
창고출고번호수량비율
A1200.2
A2300.3
A3500.5
B4400.4
B5(null)(null)
B6600.6
2
창고출고번호수량비율
A1200.2
A2300.3
A3500.5
B4400.4
B5(null)0
B6600.6
3
창고출고번호수량비율
A12020
A23030
A35050
B44040
B5(null)(null)
B66060
4
창고출고번호수량비율
A1200.1
A2300.15
A3500.25
B4400.2
B5(null)(null)
B6600.3
해설

RATIO_TO_REPORT 는 값을 파티션 합계로 나눈 비율을 0~1 사이 소수로 돌려주며, 합계는 NULL 을 뺀 값이라 A·B 모두 100 이다.

그래서 A 는 0.2·0.3·0.5, B 는 0.4·0.6 이고 수량이 NULL 인 출고번호 5 는 나눌 값이 없어 NULL 로 남는다.

  • 0.1 로 시작하는 결과는 PARTITION BY 없이 전체 합계 200 으로 나눈 경우이다.
  • 출고번호 5 의 비율이 0 인 결과는 NULL 을 0 으로 바꿔 계산한다고 본 경우이다.
  • 20·30·50 결과는 비율을 백분율로 돌려준다고 본 경우이다.

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

이어서 풀어보기

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