제 6절 윈도우 함수
1. WINDOW FUNCTION 개요
: INLINE VIEW를 이용해 복잡한 SQL문을 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수
* WINDOW FUNCTION 종류
1) 순위 관련 함수 : RANK, DENSE_RANK, ROW_NUMBER
2) 집계 관련 함수 : SUM, MAX, MIN, AVG, COUNT
3) 행 순서 관련 함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD
4) 비율 관련 함수 : CUME_DIST, PERCENT_RANK, NTITLE, RATIO_TO_REPORT
5) 선형 분석 포함 통계 분석 관련 함수 : CORR, …. 등 -생략
* WINDOW FUNCTION SYNTAX
- WINDOW 함수에는 OVER 문구가 키워드로 필수 포함
SELECT WINDOW_FUNCTION (ARGUMENTS) OVER
([PARTITION BY 칼럼] [ORDER BY 절] [WINDOWING절])
FORM 테이블명;
- WINDOW FUNCTION : 기존에 사용하던 함수도 있고, 새롭게 WINDOW 함수용으로 추가된 함수도 있다.
- ARGUMENTS (인수) : 함수에 따라 0~N개의 인수가 지정될 수 있다.
- PARTITION BY 절 : 전체 집합을 기준에 의해 소그룹으로 나눌 수 있다.
- ORDER BY 절 : 어떤 항목에 대해 순위를 지정할지 ORDER BY 절을 기술한다.
- WINDOWING : 함수의 대상이 되는 행 기준의 범위를 강력하게 지정 ROWS는 물리적인 결과 행의 수를, RANGE는 논리적인 값에 의한 범위를 나타내는데, 둘 중 하나를 선택해서 사용 가능, SQL Server에서는 지원X
2. 그룹 내 순위 함수
가. RANK
: ORDER BY를 포함한 QUERY무네서 특정 항목에 대한 순위를 구하는 함수
나. DENSE_RANK
: 동일한 순위를 하나의 건수로 취급하여 순위를 구하는 함수
다. ROW_NUMBER
: 동일한 값이라도 고유 순위 부여
3. 일반 집계 함수
가. SUM
: 파티션 별 윈도우의 합
나. MAX
: 파티션 별 윈도우의 최대값
다. MIN
: 파티션 별 윈도우의 최소값
라. AVG
: 원하는 조건에 맞는 데이터에 대한 통계 값
마. COUNT
: 원하는 조건에 맞는 데이터에 대한 통계 값
4. 그룹 내 행 순서 함수
가. FIRST_VALUE
: 파티션 별 윈도우에서 가장 먼저 나온 값
나. LAST_VALUE
: 파티션 별 윈도우에서 가장 나중에 나온 값
다. LAG
: 파티션 별 윈도우에서 이전 몇 번째 행의 값을 가져올 수 있다.
라. LEAD
: 파티션 별 윈도우에서 이후 몇 번째 행의 값을 가져올 수 있다.
5. 그룹 내 비율 함수
가. RATIO_TO_REPORT
: 파티션 내 전체 SUM(칼럼) 값에 대한 행 별 칼럼 값의 백분율을 소수점으로 구할 수 있다. >0 & <=1 의 범위 값을 가진다.
나. PERCENT_RANK
: 파티션별 윈도우에서 가장 먼저 나온 것을 0. 가장 마지막을 1로 하여 행의 순서 별 백분율을 구한다.
다. CUME_DIST
: 파티션별 윈도우의 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적 백분율을 구한다. >0 & <=1의 범위를 가진다.
라. NTITLE
: 파티션별 전체 건수를 ARGUMENT값으로 N등분한 결과를 구할 수 있다.
'자격증 > SQLD' 카테고리의 다른 글
[#SQLD] 제 8절 절차형 SQL (0) | 2023.03.10 |
---|---|
[#SQLD] 제 7절 DCL (Data Control Language) (0) | 2023.03.10 |
[#SQLD] 제 5절 그룹함수(GROUP 함수) (0) | 2023.03.09 |
[#SQLD] 제 4절 서브쿼리 (0) | 2023.03.03 |
[#SQLD] 제 3절 계층형 질의와 셀프 조인 (0) | 2023.03.02 |
댓글