ROW_NUMBER
ROW_NUMER() OVER ([PARTITION BY expression_list] ORDER BY expresstion[DESC,ASC])
- ORDER BY expresstion[DESC,ASC] : 정렬할 기준이될 컬럼 선택
- [PARTITION BY expression_list] : 부분집합 별로 순번 생성하기 위해서 부분집합을 지정하는 것 (GROUP BY)
DENSE_RANK
DENSE_RANK() OVER ( [PARTITION BY expression_list ] ORDER BY expression [ASC | DESC] )
- ORDER BY expresstion[DESC,ASC] : 정렬할 기준이될 컬럼 선택
- [PARTITION BY expression_list] : 부분집합 별로 순번 생성하기 위해서 부분집합을 지정하는 것 (GROUP BY)
특성 |
ROW_NUMBER() 함수 | DENSE_RANK() 함수 |
순위 부여 방식 | 각 행에 대해 중복 없는 연속적인 일련번호를 부여 | 동일한 값을 가진 행에 대해 같은 순위를 부여하고, 다음 순위는 해당하는 값의 개수만큼 건너뛰지 않고 부여 |
중복 처리 | 중복된 값이 있더라도 각 행에 대해 고유한 번호 부여 | 동일한 값을 가진 행에 대해서만 같은 순위 부여 |
순위 간격 | 순차적인 번호를 부여하여 간격이 항상 1씩 증가 | 중복된 값의 순위를 부여하므로 간격이 가변적일 수 있음 |
예시 | ROW_NUMBER() OVER (ORDER BY column) | DENSE_RANK() OVER (ORDER BY column) |
반응형
'DB' 카테고리의 다른 글
NULL 처리함수 정리(IFNULL 함수와 NULLIF 함수의 차이점) + COALESCE 함수 (0) | 2024.12.10 |
---|---|
윈도우 함수 옵션 (0) | 2024.05.22 |
윈도우 함수 옵션 (0) | 2024.05.17 |
MS SQL CURSOR (0) | 2024.05.16 |
GROUP BY와 PARTITION BY (0) | 2024.05.16 |