SQL 개발자 자격증SQL 활용RANK·DENSE_RANK난이도 2MCQ

SQL 개발자 자격증 RANK·DENSE_RANK 기출문제 #20243

문제

RANK() 함수와 DENSE_RANK() 함수의 결과 차이로 올바른 것은? (데이터는 100, 100, 200 이며 오름차순 기준이다.)

① RANK: 1, 1, 3 / DENSE_RANK: 1, 1, 2 ② RANK: 1, 2, 3 / DENSE_RANK: 1, 1, 2 ③ RANK: 1, 1, 2 / DENSE_RANK: 1, 2, 3 ④ 두 함수의 결과는 동일하다.

정답

1

해설

정답: 1. 오름차순 정렬 시 동점인 100·100 이 공동 1위가 되고, 200 이 그 뒤 순위가 된다. RANK 는 공동 순위 뒤에 건너뛴 순위를 적용하고, DENSE_RANK 는 건너뛰지 않는다.

오답 풀이

  • ①: 정답. 동점 두 행이 1,1 을 받고, RANK 는 다음 순위가 3(2를 건너뜀), DENSE_RANK 는 2 가 된다.
  • ②: 동점인데도 RANK 가 1,2,3 으로 다른 순위를 준 것은 틀렸다(동점은 같은 순위).
  • ③: RANK 결과 1,1,2 는 건너뛰기를 안 한 것이라 RANK 의 동작과 어긋난다.
  • ④: 동점이 있을 때 RANK 와 DENSE_RANK 는 후순위 처리가 달라 결과가 같지 않다.

보충 개념 RANK 는 동순위 다음에 '건너뛴' 순위를 부여하여 순위에 공백이 생긴다(1,1,3). DENSE_RANK 는 공백 없이 다음 순위를 연속으로 부여한다(1,1,2). ROW_NUMBER 는 동점이라도 유일한 일련번호(1,2,3)를 매긴다.

SQL 개발자 자격증 SQL 활용 다른 기출문제

SQL 개발자 자격증 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.