본문 바로가기
자격증/SQLD

[#SQLD] 윈도우 함수(Window Function) 완벽 정리: RANK, DENSE_RANK, ROW_NUMBER 차이점

by dopal2 2026. 1. 7.
반응형

안녕하세요! 잡다한 공방입니다.

오늘은 SQLD 자격증 시험의 단골 문제이자, 실무 데이터 분석에서도 정말 자주 쓰이는 윈도우 함수(Window Function)를 정리해 보려 합니다.

특히 많은 수험생이 헷갈려 하시는 RANK, DENSE_RANK, ROW_NUMBER의 차이점을 중점적으로 다뤄보겠습니다.

 

1. 윈도우 함수(Window Function)란?

윈도우 함수는 행과 행 사이의 관계를 정의하기 위해 사용하는 함수입니다. 일반적인 GROUP BY와 달리 행의 수를 줄이지 않고도 각 행에 집계 결과를 표시할 수 있다는 장점이 있습니다.

SELECT 함수(열) OVER (PARTITION BY 그룹열 ORDER BY 정렬열)
FROM 테이블명;

  • PARTITION BY: 소그룹으로 나눌 기준
  • ORDER BY: 순위를 정하거나 범위를 지정할 기준

 

2. 순위 함수 3종 세트 비교

시험에서 가장 많이 출제되는 유형은 "다음 중 결과값이 다른 것은?"입니다. 아래 표만 외워도 한 문제는 맞힌 셈입니다!

함수명 특징 예시 (100, 100, 90점)
RANK 중복 순위만큼 건너뜀 1등, 1등, 3등
DENSE_RANK 중복 순위가 있어도 연속됨 1등, 1등, 2등
ROW_NUMBER 중복과 상관없이 고유 번호 부여 1등, 2등, 3등

 

3. 💡 암기 팁

"DENSE는 빈틈이 없다!"

영어 단어 Dense(밀집한, 빽빽한)를 떠올리세요. 순위 사이에 빈틈(건너뛰기)이 없는 것이 바로 DENSE_RANK입니다.

 

4. 마무리하며

오늘 정리한 내용이 여러분의 합격에 작은 도움이 되길 바랍니다! 궁금하신 점은 댓글로 남겨주시고, 도움이 되셨다면 공감 부탁드립니다.

 

반응형

댓글