본문 바로가기
SQL

[SQL] window 함수 (analytic SQL)

by ISLA! 2023. 3. 23.

의미

원본 데이터 레벨을 그대로 유지하면서, 그룹핑 레벨에서 자유롭게 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