본문 바로가기
SQL/SQL 개념 정리

[SQL] WINDOW 함수 VS 집계 함수

by yeah-12 2024. 5. 27.

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 그룹)