Window fuction - RANK(), DENSE_RANK()

Sooin Yoon·2025년 3월 31일

window fuction(윈도우함수)

함수명() OVER (PARTITION BY 기준컬럼 ORDER BY 정렬기준컬럼)

  • 함수명() : RANK(), DENSE_RANK(), ROW_NUMBER()
  • OVER : 윈도우 함수는 반드시 OVER절을 써야함
  • PARTITION BY : (선택사항) 그룹별로 순위를 나누고 싶을 때 사용
  • ORDER BY : 어떤 기준으로 순위를 매길지

DENSE_RANK()

: 동점인정 + 순위 건너뛰지 않음

SELECT 
  score,
  DENSE_RANK() OVER (ORDER BY score DESC) AS ranking
FROM scores;

RANK()

 score,
  RANK() OVER (ORDER BY score DESC) AS ranking
FROM scores;
<<< 동점 이후에 순위가 건너뜀, 100(1등), 100(1등), 90(3등)

ROW_NUMBER()

SELECT 
  score,
  ROW_NUMBER() OVER (ORDER BY score DESC) AS row_num
FROM scores;
<<< 동점이어도 무조건 다른 번호를 줌, 100(1번), 100(2번), 90(3번)

0개의 댓글