의미
원본 데이터 레벨을 그대로 유지하면서, 그룹핑 레벨에서 자유롭게 window의 이동과 크기를 조절하며 분석을 수행
사용법
<Analytic function> (인자1, 인자2...)
OVER
[Partition 절] : 그룹화 컬럼명
[Sorting 절] : 정렬 컬럼명(window 이동방향 기준)
[Window 절] : window 범위(row, range)
사용 예시
select *
,rank() over(order by hiredate asc) as hire_rank
from emp el;
- 예시 처럼, partition절 지정을 따로 안해도 됨. / 지정하고 싶으면 "partition by (컬럼명)" 쓰기
- sorting절 사용은 "order by (컬럼명)" 쓰기
- sorting절에서 nulls first(디폴트, null값이 우선순위/1순위가 됨), nulls last(지정해줘야 함) => 랭크 함수 쓸 때 유의
유의
절의 순서가 바뀌어서는 안됨 : partition > sorting > window
728x90
'SQL' 카테고리의 다른 글
[SQL] case when 구문 사용과 group by (0) | 2023.03.22 |
---|---|
[SQL] 쿼리쓰는 기본 순서 (0) | 2023.03.21 |
[SQL] date_trunc() (0) | 2023.03.21 |
[SQL 시간 간격] justify_interval 과 age 사용 (0) | 2023.03.21 |
[SQL 현재 시간 표시] now(), current_timestamp, current_date, current_time (0) | 2023.03.21 |