A. Window Function 개요
1. 분석 함수(ANALYTIC FUNCTION)나 순위 함수(RANK FUNCTION)
2. 행과 행간의 관계 정의, 행과 행간 비교 및 연산하는 것
3. 데이터웨어하우스에서 발전
4. 서브쿼리에서 사용 가능
B. Window Function 문법
C. WINDOW FUNCTION 종류
윈도우 함수 | 설 명 |
그룹 내 순위 함수 | RANK, DENSE_RANK, ROW_NUMBER 함수 ANSI/ISO SQL 표준과 Oracle, SQL Server 등 대부분의 DBMS에서 지원 |
그룹 내 집계 함수 | SUM,MAX, MIN, AVG, COUNT 함수 ANSI/ISO SQL 표준과 Oracle, SQL Server 둥 대부분의 DBMS에서 지원 SQL Server의 경우 집계 함수는 OVER 절 내의 ORDER BY 구문을 지원하지 않음 |
그룹 내 행 순서 함수 | FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수 Oracle 에서 만 지원 |
그룹 내 비율 함수 | RATIO_TO_REPORT,PERCENT_RANK, NTILE, RATIO_TO_REPORT 함수 CUME_DIST, PERCENT_RANK 함수는 ANSI/ISO SQL 표준과 Oracle DBMS에서 지원 NTILE 함수는 Oracle, SQL Server에서 지원 RATIO_TO_REPORT 함수는 Oracle에서만 지원되는 함수 |
통계 분석 함수 | 통계에 특화된 기능 |
D. 그룹 내 순위 함수 - RANK
1) ORDER BY를 포함
2) 특정 항목(칼럼)에 대한 순위를 구하는 함수
3) PARTITION 또는 전체 범위에서 순위를 구할 수 있음
4) 동일한 값은 동일한 순위 부여
E. 그룹 내 순위 함수 - DENSE_RANK
1) ORDER BY를 포함
2) 특정 항목(칼럼)에 대한 순위를 구하는 함수
3) PARTITION 또는 전체 범위에서 순위를 구할 수 있음
4) 동일한 순위를 하나의 건수로 취급
F. 그룹 내 순위 함수 - ROW_NUMBER
1) ORDER BY를 포함
2) 특정 항목(칼럼)에 대한 순위를 구하는 함수
3) PARTITION 또는 전체 범위에서 순위를 구할 수 있음
4) 동일한 값이라도 고유한 순위를 부여
G. 일반 집계 함수 - SUM
1. ORDER BY 절이 추가되면 파티션 내 데이터를 정렬하고 이전 데이터들의 누적 값을 출력
2. SQL SERVER는 ORDER BY 절을 지원하지 않음
H. 일반 집계 함수 - COUNT
1. ORDER BY 절이 추가 되면 파티션 내 데이터를 정렬하고 이전 데이터들의 누적 값을 출력
2. SQL SERVER는 ORDER BY 절을 지원하지 않음
I. 그룹 내 행 순서 함수 - FIRST_VALUE
1. 파티션별 가장 먼저 나온 값 출력
2. SQL SERVER 지원하지 않음
3. 공동 등수를 인정하지 않고 처음 나온 행 출력
J. 그룹 내 행 순서 함수 - LAG
1. 이전 행의 값을 출력
2. SQL Server에서는 지원하지 않음
3. 3개의 ARGUMENTS 까지 사용 가능
4. 두 번째 인자는 몇 번째 앞의 행을 가져올 것인지 결정(DEFAULT 1)
5. 세 번째 인자는 로우에 값이 없는 경우 특정 값을 출력
K. 그룹 내 행 순서 함수 - LEAD
1. 다음 행의 값을 가져와 출력
2. SQL Server에서는 지원하지 않음
3. 3개의 ARGUMENTS 까지 사용 가능
4. 두 번째 인자는 몇 번째 앞의 행을 가져올 것인지 결정(DEFAULT 1)
5. 세 번째 인자는 로우에 값이 없는 경우 특정 값을 출력
L. 그룹 내 행 비율 함수 - RATIO_TO_REPORT
1. 전체 SUM(칼럼)값에 대한 행 별 칼럼 값의 백분율 출력
2. 결과 값은 > 0 과 <= 1의 범위
3. 개별 RATIO 의 합은 1
4. SQL Server에서는 지원하지 않는 함수
M. 그룹 내 행 비율 함수 - PERCENT_RANK
1. 파티션별 원도우에서 제일 먼저 나오는 것을 0
2. 파티션별 원도우에서 제일 늦게 나오는 것을 1
3. 값이 아닌 행의 순서별 백분율
4. 결과 값은 >= 0 과 <= 1의 범위
5. SQL Server에서는 지원하지 않는 함수
N. 그룹 내 비율 함수 - CUME_DIST
1. 파티션별 윈도우 전체건수에서 현재 행보다 작거나 같은 건수에 대한 누적백분율
2. 결과 값은 >= 0과 <= 1의 범위
3. SQL Server에서는 지원하지 않는 함수
O. 그룹 내 비율 함수 - NTILE
1. 파티션별 전체 건수를 ARGUMENT 값으로 N 등분한 결과
2. NTILE(4)의 의미는 14명의 팀원을 4개 조로 나눈다는 의미
3. 나머지가 있다면 앞 등분한 그룹부터 할당
[용어/개념] 서비스 모니터링 - Metric, 수집 방식, Nagios, Zabbix, SLI, SLO, 구글 SRE조직
[SQLD] 4-5. SQL 활용 - 그룹 함수, ANSI/ISO SQL 표준, ROLLUP, GROUPING, CUBE
[SQLD] 3-3. SQL 기본 - DML 개념, 종류, 구문