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

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

[도서]

도서번호제목분류대출수
1파친코문학12
2데미안문학12
3토지문학8
4어린왕자문학(null)
5코스모스과학7
6시간의 역사과학7
SELECT 분류, 제목,
       RANK() OVER (PARTITION BY 분류
                    ORDER BY 대출수 DESC) AS R,
       DENSE_RANK() OVER (PARTITION BY 분류
                          ORDER BY 대출수 DESC) AS D
  FROM 도서
 ORDER BY 분류, R, 도서번호;
1
분류제목RD
과학코스모스11
과학시간의 역사22
문학어린왕자11
문학파친코22
문학데미안22
문학토지43
2
분류제목RD
과학코스모스11
과학시간의 역사11
문학파친코11
문학데미안11
문학토지32
문학어린왕자43
3
분류제목RD
과학코스모스11
과학시간의 역사11
문학어린왕자11
문학파친코22
문학데미안22
문학토지33
4
분류제목RD
과학코스모스11
과학시간의 역사11
문학어린왕자11
문학파친코22
문학데미안22
문학토지43
해설

Oracle 은 내림차순 정렬에서 NULL 을 가장 앞에 두므로 문학에서 어린왕자가 1위가 되고, 12 동점 둘이 2위, 토지는 RANK 4·DENSE_RANK 3 이다.

순위는 PARTITION BY 분류로 분류마다 1부터 다시 매겨지며, 과학의 7 동점 두 권은 두 함수 모두 1이다.

  • 어린왕자를 맨 뒤 4위로 둔 표는 NULL 을 가장 작은 값으로 본 SQL Server 식 정렬이다.
  • 토지의 RANK 를 3으로 둔 표는 RANK 가 동점 뒤 순위를 건너뛰지 않는다고 본 것이다.
  • 시간의 역사를 2위로 둔 표는 동점에도 고유 번호를 주는 ROW_NUMBER 와 혼동한 결과이다.

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

이어서 풀어보기

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