윈도우 함수 : 행과 행간의 관계를 정의하거나 행과 행간을 비교, 연산하는 함수( 분석 함수, 순위 함수)
순위 관련 함수( 그룹 내 ) :
- Rank : 동일한 값에 대해서는 동일한 순위를 부여 (1,2,2,4) 그다음 순위 건너 뜀 - 동일 순위 처리가능
- Dense_Rank : 동일한 값에 대해 동일한 순위 부여, 그 다음 순위 건너뛰지 않는다. (1,2,2,3) - 순차적
- Row_Number : 동일한 값이라도 고유한 순위 부여 (1,2,3,4)
집계 관련 함수
- Sum : 파티션 별 윈도우의 합 구할 수 있다.
ex_ e,g 같은 매니저를 두고 있는 사원들의 월급 합
Select Sum(sal) over (Partition By MGR) as Mgr_sum from emp;
- Max,Min : 파티션 별 윈도의 최대, 최솟값을 구할 수 있다.
. ex_같은 매니저를 두고 있는 사원들 중 최댓값
Select Max(Sal) Over (Partition By MGR) as Mgr_max from emp;
- Avg : 원하는 조건에 맞는 데이터에 대한 통계 값
ex_ 같은 매니저 내에서 앞의 사 번과 뒤의 사 번의 평균
Select Round(avg(sal) over Partnum by MGR) as Mgr_avg from emp;
- Count : 조건에 맞는 데이터에 대한 통계 값
ex_ 본인 급여보다 50 이하가 적거나 150 이하로 많은 급여를 받는 인원수
Select name, sal Count(*) over (order by sal range between 50 preceding and 150 following) as Sim_cnt from emp;
행 순서 관련 함수 - Sql Server 지원 x
- First_Value : 파티션별 윈도의 처음 값
- Last_Value : 파티션별 윈도우의 마지막 값
- Lag : 파티션별 윈도에서 이전 몇 번째 행의 값
- Lead : 파티션별 윈도우에서 이후 몇 번째 행의 값
Lag( 인자 1(출력할 값), 인자 2, 인자 3(가져올 값이 없을 경우 처리) ) over ~
비율 관련 함수
- Ratio_to_Report : 파티션 내 전체 Sum에 대한 행별 칼럼 값의 백분율을 소수점으로 구할 수 있다.( >0, <=1 )
- Percent_Rank : 파티션 별 윈도우에서 처음값을 0, 마지막값을 1로 하여 행의 순서별 백분율을 구한다. ( 0>=, <=1 )
(순서상 몇 번째 위치에 있는지.)
- Cume_dist : 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 구한다. (>0, <=1)
(누적 순서상 몇 번째 위치에 있는지)
- Ntile : 파티션 별 전체 건수를 인수값으로 N등분한 결과를 구할 수 있다. (~기준으로 N개 그룹으로 분류)
통계 분석 특화 함수 ( 선형 분석 포함)
'SQL' 카테고리의 다른 글
SQLD 시험 대비 - Group By, Join (1) (0) | 2023.03.16 |
---|---|
SQLD 시험 대비 - SQL 활용편(3) (0) | 2023.03.08 |
SQLD 시험 대비 - SQL 활용편(2) (0) | 2023.03.07 |
SQLD 시험 대비 - SQL 활용편(1) (0) | 2023.03.06 |
SQLD 시험 대비 - SQL 기본 (3) (0) | 2023.03.06 |