문제
다음 [성적] 테이블에서 SQL문을 실행했을 때, 학생명이 '최민수'인 행의 순위값을 쓰시오.
| 학생명 | 과목 | 점수 |
|---|---|---|
| 김철호 | 수학 | 85 |
| 이영희 | 수학 | 92 |
| 최민수 | 수학 | 78 |
| 박지원 | 수학 | 92 |
| 정수현 | 수학 | 88 |
SQLSELECT 학생명, DENSE_RANK() OVER (ORDER BY 점수 DESC) AS 순위 FROM 성적;
정답
4
4
해설
DENSE_RANK() 함수는 동순위가 있어도 다음 순위를 건너뛰지 않습니다.
점수를 내림차순으로 정렬하면:
- 92점: 이영희, 박지원 (공동 1위)
- 88점: 정수현 (2위)
- 85점: 김철호 (3위)
- 78점: 최민수 (4위)
DENSE_RANK()는 동점자가 있어도 다음 순위를 건너뛰지 않으므로 1, 1, 2, 3, 4 순서로 순위가 매겨집니다. 따라서 최민수(78점)의 순위는 4위입니다.