SQLDSQL 활용윈도우 함수난이도 2MCQ

SQLD 윈도우 함수 기출문제 #3590

문제

다음 빈칸에 들어갈 함수로 옳은 것은?

NAMESALARY
Alice5000
Bob7000
Charlie3000
David6000
Smith7000
SQL
SELECT NAME, SALARY, ________ OVER (ORDER BY SALARY DESC) AS RANKING FROM TAB1;

<결과>

NAMESALARYRANKING
Bob70001
Smith70001
David60002
Alice50003
Charlie30004

① DENSE_RANK() ② RANK() ③ PERCENT_RANK() ④ ROW_NUMBER()

정답

1

해설

정답: 1. 동점자에게 같은 순위를 부여하고 다음 순위를 건너뛰지 않으므로 DENSE_RANK()가 적절하다.

오답 풀이

  • 1번: 1, 1, 2, 3, 4 형태로 순위가 부여되므로 옳다.
  • 2번: RANK()라면 1, 1 다음 순위가 3이 된다.
  • 3번: PERCENT_RANK()는 상대 순위를 0~1 사이 값으로 계산한다.
  • 4번: ROW_NUMBER()는 동점자에게도 서로 다른 번호를 부여한다.

보충 개념 RANK는 동점 이후 순위를 건너뛰고, DENSE_RANK는 건너뛰지 않는다. ROW_NUMBER는 정렬 결과의 행 번호를 고유하게 부여한다.

SQLD 시험 준비 가이드

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

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

[SQLD] 윈도우 함수 SQL 활용 기출 #3590 | 문어CBT