[SELECT 절에서 사용되는 윈도우 함수 기본 문법]
SELECT WINDOW_FUNTION () OVER (PARTITION BY CAL1 ORDER BY CAL2 ASC/DESC)
FROM TABLE
[특징]
- GROUP BY와 병행하여 사용할 수 없지만 서브쿼리에는 사용할 수 있다.
종류 | 특징 | 함수 |
순위 *** | 같으면 같은 등수 부여 후 건너뛰고 순차적 번호 부여 1,1,3,4,4,6,7, ... (ORDER BY 필수) |
RANK() |
순위 | 같으면 같은 등수 부여 후 순차적 번호 부여 1,1,2,2,3,3, ... (ORDER BY 필수) |
DENSE_RANK() |
순위 *** | 같아도 정렬 기준에 따라 연속된 번호 부여 1,2,3,4,5,6,7,8, ... (ORDER BY 필수) |
ROW_NUMBER() |
집계 | 집계함수와 동일 | SUM, MAX, MIN, AVG, COUNT |
순서 | PARTITION 한 것에서 ORDER BY를 했을 때 제일 먼저 뜨는 값을 호출 |
FIRST_VALUE(칼럼명) |
순서 | PARTITION 한 것에서 ORDER BY를 했을 때 제일 마지막 뜨는 값을 호출 |
LAST_VALUE(칼럼명) |
순서 *** | 지정 칼럼에서 이전 n 번째의 행 값 호출 (ORDER BY 필수) |
LAG(칼럼, n) / n 기본 값 (1), 최대 (3) |
순서 *** | 지정 칼럼에서 다음 n 번째의 행 값 호출 (ORDER BY 필수) |
LEAD(칼럼, n) / n 기본 값 (1), 최대 (3) |
비율 | (ORACLE 에서만) (ORDER BY 불가) 행의 값을 전체 합한 것에서의 해당 값의 비율 표현 |
RATIO_TO_REPORT(칼럼) |
비율 *** | 최소 값을 0 ~ 최대 값을 1로 두고 백분위 수 출력 (0.25, 0.98 등, 소숫 점) (ORDER BY 필수) |
PERCENT_RANK() OVER(ORDER BY()) |
비율 | 파티션/ORDER BY 별로 값들을 누적 백분율 행이 3개면 1/3으로 각각 표현 (ORDER BY 필수) |
CUME_DIST() OVER(ORDER BY()) |
비율 | 파티션/ORDER BY 별 전체 건수를 계산한 값으로 n 등분한 결과 (ORDER BY 필수) |
NTILE(n) OVER(ORDER BY()) |
'SQL 이것저것' 카테고리의 다른 글
[MySQL] UNION 할 때 컬럼 개 수 맞추기 (2) | 2024.10.18 |
---|---|
[MySQL] 코드카타 69번 DOUBLE GROUP BY (0) | 2024.10.17 |
[MySQL] 자주 쓰는 함수들 - UPDATABLE (0) | 2024.10.16 |
[MySQL] 단일 컬럼 값이 두 개 이상의 속성 값을 갖는 데이터 호출하기 (2) | 2024.10.15 |
[MySQL] WHERE 절 서브쿼리 (0) | 2024.10.15 |