반응형


일반적으로 ROW_NUMBER()의 OVER 절에 다음과 같이 그룹화 시킬 컬럼을 넣어서 사용하게 된다.

SELECT 
 (ROW_NUMBER() OVER (PARTITION BY dept_code ORDER BY user_id)) as ord, * 
FROM 
 UserTable
ORDER BY 
 dept_code


그런데 만약 특정 컬럼에 대한 일련번호가 아닌 전체 row 에 대하여 처음부터 일련번호를 부여 하고자 하면 다음과 같이 

PARTITION BY 없이 ORDER BY 만 사용 하면 된다. 이때 ORDER BY 에 사용하는 컬럼값이 데이터에 중복되어 있어도 관계없다. 

ROW_NUMBER() 함수의 특성상 동일값 이라도 차례대로 일련번호를 부여하기 때문 이다.

SELECT 
 (ROW_NUMBER() OVER (ORDER BY user_id)) as ord, * 
FROM 
 UserTable
ORDER BY 
 ord


반응형

+ Recent posts