※ 윈도우 함수

        1. 윈도우 함수란? - OVER 키워드와 함께 사용되며 다음과 같이 나뉜다.

             1-1. 순위 함수

                    ① RANK - 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 반복하고 다음 순위를 건너뛴다.

                    ② DENSE_RANK - 순위를 매기면서 같은 순위가 존재하더라도 다음 순위를 건너뛰지 않고 이어서 매긴다. 

                    ③ ROW_NUMBER - 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다. 

             1-2. 집계 함수

                    ① SUM - 데이터의 합계를 구하는 함수로 인자값으로는 숫자형만 올 수 있다. SUM하는 컬럼을 OVER절에서 ORDER BY절에 명시해주면 RANGE UNBOUNDED PRECEDING 구문 없어도 누적합이 집계된다.

                    ② MAX - 데이터의 최댓값을 구하는 함수

                    ③ MIN - 데이터의 최솟값을 구하는 함수 

                    ④ AVG - 데이터의 평균값을 구하는 함수

                    ⑤ COUNT - 데이터의 건수를 구하는 함수

WINDOW절 default RANGE UNBOUNDED PRECEDING

             1-3. 행 순서 함수(SQL Server에서 사용 불가능)

                    ① FIRST_VALUE - 파티션 별 가장 선두에 위치한 데이터를 구하는 함수다.

                    ② LAST_VALUE - 파티션 별 가장 끝에 위치한 데이터를 구하는 함수다.

                    ③ LAG - 파티션 별로 특정 수만큼 앞선 데이터를 구하는 함수로 LAG함수의 두 번째 인자값을 생략하면 default값인 1을 인자값으로 사용한다.

                    ④ LEAD - 파티션 별 특정 수만큼 뒤에 있는 데이터를 구하는 함수로 LEAD함수의 두 번째 인자값을 생략하면 default값인 1을 인자값으로 사용한다.

             1-4. 비율 함수(SQL Server에서 사용 불가능)

                    ① RATIO_TO_REPORT - 파티션 별 합계에서 차지하는 비율을 구하는 함수다.

                    ② PERCENT_RANK - 해당 파티션의 맨 위 행을 0, 맨 아래 행을 1로 놓고 현재 행이 위치하는 백분위 순위값을 구하는 함수다.

                    ③ CUME_DIST - 해당 파티션에서의 누적 백분율을 구하는 함수로 결괏값은 0보다 크고 1보다 작거나 같은 값을 가진다. 

                    ④ NTILE - 주어진 수만큼 행들을 n등분한 후 현재 행에 해당하는 순번을 구하는 함수다. 순번을 구하고도 순번을 할당할 행이 남아 있을경우 맨 앞의 그룹부터 하나씩 더 채워진다. 

+ Recent posts