728x90
반응형
MSSQL 순위 함수 비교
아래 3개의 순위 함수에 대해 알아보고 비교해보았습니다.
- MSSQL 순위 함수 비교
- RANK
- DENSE_RANK
- ROW_NUMBER
RANK, DENSE_RANK, ROW_NUMBER 함수를 이해하기 위해서는 위의 출력 결과를 보시면 됩니다.
빨간색으로 표시한 CU에서 썬칩, 고래밥, 자갈치가 동일하게 40개씩 팔렸을 때 이 부분을 주의 깊게 봐야 하는데요.
- RANK 함수 : 중복 값들에 대해서 동일 순위로 표시하고 중복 순위 다음 값은 중복 개수만큼 더한 순위로 출력하는 함수
- DENSE_RANK 함수 : 중복 값들에 대해서 동일 순위로 표시하고 중복 순위 다음 값은 중복 값과 상관없이 순위 값을 출력하는 함수
- ROW_NUMBER 함수 : 중복 값들에 대해서도 순차적인 순위를 표시하는 함수
아래는 SQL이니 참고하세요.
WITH T1 AS
(
SELECT 'CU' AS MART , '새우깡' AS SNACK , 50 AS SELL UNION ALL
SELECT 'CU' , '다이제' , 80 UNION ALL
SELECT 'CU' , '자갈치' , 40 UNION ALL
SELECT 'CU' , '고래밥' , 40 UNION ALL
SELECT 'CU' , '썬칩' , 40 UNION ALL
SELECT 'CU' , '허니버터칩' , 20 UNION ALL
SELECT 'CU' , '구운감자' , 100 UNION ALL
SELECT 'CU' , '치토스' , 60
)
SELECT
MART, SNACK, SELL
, RANK() OVER (ORDER BY SELL DESC) AS RANK_SELL
, DENSE_RANK() OVER (ORDER BY SELL DESC) AS DENSE_RANK_SELL
, ROW_NUMBER() OVER (ORDER BY SELL DESC) AS ROW_NUMBER_SELL
FROM T1
728x90
반응형
'MSSQL' 카테고리의 다른 글
MSSQL DATETIME 월의 첫번째 날짜, 월의 마지막 날짜 (0) | 2024.11.13 |
---|---|
MSSQL 순위 함수 (RANK, DENSE_RANK, ROW_NUMBER) PARTITION BY (0) | 2024.10.26 |
[MSSQL] 쿼리 바로 가기 단축키 설정 및 사용 방법 (2) | 2024.08.14 |
[MSSQL] SQL Server 연결 속성 (0) | 2024.08.04 |
[MSSQL] 데이터베이스 기본값 변경 방법 (0) | 2024.08.04 |