※ 윈도우 함수
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등분한 후 현재 행에 해당하는 순번을 구하는 함수다. 순번을 구하고도 순번을 할당할 행이 남아 있을경우 맨 앞의 그룹부터 하나씩 더 채워진다.
'자격증 > SQLD' 카테고리의 다른 글
[ SQLD 자격증 ] 관리구문 - 1. DML (0) | 2023.05.30 |
---|---|
[ SQLD 자격증 ] SQL 활용 - 5. Top-N 쿼리 (0) | 2023.05.30 |
[ SQLD 자격증 ] SQL 활용 - 4. 그룹 함수 (0) | 2023.05.27 |
[ SQLD 자격증 ] SQL 활용 - 3. 집합 연산자 (0) | 2023.05.27 |
[ SQLD 자격증 ] SQL 활용 - 2. 뷰(View) (0) | 2023.05.26 |