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

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

[예약]

편명운임
KE101100
KE101200
KE101200
KE101500
OZ330400
OZ330600
SELECT 편명, 운임,
       RATIO_TO_REPORT(운임) OVER (PARTITION BY 편명) AS 비율,
       CUME_DIST() OVER (PARTITION BY 편명 ORDER BY 운임) AS 누적
  FROM 예약
 ORDER BY 편명, 운임;
1
편명운임비율누적
KE1011000.10.25
KE1012000.20.5
KE1012000.20.75
KE1015000.51
OZ3304000.40.5
OZ3306000.61
2
편명운임비율누적
KE1011000.10.25
KE1012000.20.5
KE1012000.20.5
KE1015000.51
OZ3304000.40.5
OZ3306000.61
3
편명운임비율누적
KE1011000.050.25
KE1012000.10.75
KE1012000.10.75
KE1015000.251
OZ3304000.20.5
OZ3306000.31
4
편명운임비율누적
KE1011000.10.25
KE1012000.20.75
KE1012000.20.75
KE1015000.51
OZ3304000.40.5
OZ3306000.61
해설

RATIO_TO_REPORT 는 편명별 합계 1000 에 대한 각 운임의 비율이고, CUME_DIST 는 현재 값 이하인 행 수를 파티션 행 수로 나눈 값이다.

KE101 의 200 두 행은 동점이라 100 과 함께 4행 중 3행이 200 이하이므로 둘 다 0.75 이고, OZ330 의 400 은 2행 중 1행이라 0.5 이다.

  • 동점 두 행에 0.5 와 0.75 를 나눈 표는 행 번호처럼 차례로 센 결과이다.
  • 비율이 절반으로 줄어든 표는 PARTITION 을 무시하고 전체 합 2000 으로 나눈 것이다.
  • 동점 행을 0.5 로 둔 표는 순위 2를 행 수 4로 나눈 RANK/N 으로 계산한 것이다.

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

이어서 풀어보기

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