Allen's 데이터 맛집

SQL : 윈도우 함수 ROW_NUMBER() 와 활용 본문

SQL/SQL

SQL : 윈도우 함수 ROW_NUMBER() 와 활용

Allen93 2023. 12. 25. 19:56
ROW_NUMBER()는 SQL에서 사용되는 윈도우 함수 중 하나로, 결과 집합의 각 행에 번호를 할당하는 데 사용됩니다.

 

 



1. 각 행에 번호 부여
- ROW_NUMBER() 함수는 결과 집합의 각 행에 고유한 번호를 부여합니다.
- 이 번호는 일종의 순서 또는 순위를 나타냅니다.


2.ORDER BY 절과 함께 사용
- ROW_NUMBER()를 사용할 때는 일반적으로 ORDER BY 절과 함께 사용됩니다.
- ORDER BY에 지정한 열을 기준으로 순서를 정하고, 그 순서에 따라 번호가 부여됩니다.

 

3. PARTITION BY 절과 함께 사용

보통 PARTITION BY구문과 함께 사용되며 PARTITION BY의 기준으로 그룹화된 각 파티션의 행들은 ROW_NUMBER()에 의해 '1'부터 차례대로 넘버링됩니다.

 

4. OVER와 PARTITION BY

OVER : 쿼리 결과 집합 내의 윈도우 또는 사용자 지정 행 집합을 정의합니다. OVER 절에 윈도우 함수를 사용하여 이동 평균, 누적 집계, 누계 또는 그룹 결과당 상위 N개 결과 등의 집계된 값을 계산할 수 있습니다.

PARTITION BY : 특정 열을 기준으로 데이터를 나눕니다. PARTITION_BY를 지정하지 않으면 쿼리 결과 집합의 모든 행이 같은 그룹으로 취급됩니다.

 

 

예를 들어 아래와 같은 데이터가 있다고 가정합니다.

 

 

PARTITION BY를 사용하여 혈액형 별로 그룹화를 하여서 넘버링을 하면 다음과 같은 결과가 나옵니다.

SELECT 
ROW_NUMBER() OVER (PARTITION BY BloodType) as BloodType_num,
name, BloodType
from user.test2