Window 함수란?
Window 함수는 한 번에 여러 행을 묶어서 처리 할수 있는 함수로,
GROUP BY 구문과 매우 비슷하지만,
원형의 데이터를 변형시키지 않고도,
다양한 함수를 원형의 데이터셋 행에 동시에 사용할 수 있다.
→ 원래의 테이블 형태를 그대로 유지하고 새로운 변수로 만들 수 있는 함수 자체
- Window 함수와 집계 함수의 차이점
- 결과 행 수의 차이 : 집계 함수는 그룹별로 묶어서 하나의 요약된 값을 반환하는 반면, 윈도우 함수는 데이터의 행 수를 유지하며 각 행에 대해 계산된 값을 반환
- 사용하는 문법: 집계 함수는 주로 GROUP BY 절과 함께 사용되며, 데이터의 그룹별 요약을 제공하지만, window 함수는 OVER 절과 함께 사용되어 각 행에 대해 추가적인 계산 정보를 제공
- 사용하는 경우: 집계 함수는 전체 그룹 또는 서브 그룹의 요약된 값을 필요로 할 때 사용. 반면 윈도우 함수는 각 행을 유지하는 범위 내에서 계산된 값을 제공하여 순위, 이동 평균, 누적 합계 등을 계산할 때 유용
<GROUP BY 사용>
SELECT 그룹, SUM(값) FROM 테이블 GROUP BY 그룹

<WINDOW 함수 사용>
SELECT 그룹, 값, SUM(값) OVER (PARTITION BY 그룹) AS 합계 FROM 테이블

<WINDOW 함수 기본 문법 구조>
집계 함수(칼럼) OVER([PARTITION BY 컬럼] [ORDER BY 컬럼])
#대괄호는 선택사항으로, 생략가능하다. 따라서 아래구조도 가능
1. SUM(값) OVER ()
2. SUM(값) OVER (PARTITION BY 그룹)
'SQL > SQL 개념 정리' 카테고리의 다른 글
| [SQL] SUBQUERY와 자주 쓰이는 함수들 - IN, EXISTS, ANY, ALL (0) | 2024.05.28 |
|---|---|
| [SQL] SUBQUERY 함수 - 단일행, 다중행, 상관관계 서브쿼리 (0) | 2024.05.28 |
| [SQL] ROW_NUMBER(), RANK() & DENSE_RANK(), NTILE(), LAG() & LEAD(), FIRST_VALUE() & LAST_VALUE() / SUM() & AVG() & COUNT() 집계함수와의 조합 (0) | 2024.05.27 |
| [SQL - BASIC] WINDOW 함수 종류 (0) | 2024.05.27 |
| [SQL] UNION & JOIN 함수 (0) | 2024.04.24 |