다음 SQL의 결과로 나오는 RNK, DRNK, RN 값을 순서대로 나… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 SQL의 결과로 나오는 RNK, DRNK, RN 값을 순서대로 나열한 것은?

[게시글]

글번호조회수
A190
A2120
A390
A4150
A5120
A660
SELECT RNK, DRNK, RN
  FROM (SELECT 글번호,
               RANK() OVER (ORDER BY 조회수 DESC) AS RNK,
               DENSE_RANK() OVER (ORDER BY 조회수 DESC) AS DRNK,
               ROW_NUMBER() OVER (ORDER BY 조회수 DESC, 글번호) AS RN
          FROM 게시글) T
 WHERE 글번호 = 'A3'
 ORDER BY RN;
1
3, 3, 5
2
4, 3, 4
3
4, 4, 5
4
4, 3, 5
해설

조회수 내림차순은 150, 120, 120, 90, 90, 60 이고 A3 은 90 동점 그룹이므로 RANK는 앞선 3행을 건너뛴 4, DENSE_RANK는 세 번째 값이라 3이다.

ROW_NUMBER 는 동점을 글번호로 다시 정렬해 A1 이 4, A3 이 5를 받는다.

  • RANK 를 3으로 보는 것은 DENSE_RANK 처럼 순위를 이어 붙인 것이다.
  • DRNK 를 4로 보는 것은 DENSE_RANK 도 순위를 건너뛴다고 본 것이다.
  • RN 을 4로 보는 것은 동점 안 정렬 기준인 글번호를 무시한 것이다.

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

이어서 풀어보기

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