본문 바로가기

SQL

SQLD 시험 대비 - SQL 활용편(3)

윈도우 함수  : 행과 행간의 관계를 정의하거나 행과 행간을 비교, 연산하는 함수( 분석 함수, 순위 함수)

 

순위 관련 함수( 그룹 내 ) :

 - 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