공부/sql

ROW_NUMBER() OVER(PARTITION BY - ORDER BY)

hansuya 2025. 5. 28. 09:50

row_number() 는 sql 의 내장 함수로 결과 집합의 각 행에 고유한 숫자를 할당하는 역할을 한다
순서 번호를 필요로 하는 쿼리에서 사용한다

row_number() over ([partition by 그룹핑할 컬럼] order by 정렬할 컬럼 [asc|desc])
그룹핑할 컬럼 :'무엇'에 대해 순서를 매길 것인가?
정렬할 컬럼 : 순서를 매길 때 기준은 '무엇'으로 할 것인가?

예)
select employee_id
        ,job_id
        ,end_date
        ,row_number() over(partition by employee_id order by end_date desc) as rn
from hr.job_history;
>>> 동일한 employee_id 에 대하여 end_date 가 최신인 순으로 매겨 컬럼 rn 으로 한다

'공부 > sql' 카테고리의 다른 글

계층적 쿼리 SYS_CONNECT_BY_PATH  (0) 2025.05.28
ROLLUP  (0) 2025.05.28
CONNECT BY LEVEL  (0) 2025.05.28
GRANT에 사용된 RESOURCE 키워드  (0) 2025.05.28
시퀀스  (0) 2025.05.28