본문 바로가기
프로그래밍/SQL, Hive, SAS 관련 정보

[SQL 기초] Group by와 Window함수의 동시사용

by 물박사의 저장공간 2025. 4. 13.

2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents


저희가 어떤 그룹화된 집계 결과를 계산하고자 할 때 Group by나 Window함수를 사용하는데요, 그래서 이 두가지 기능이 완벽한 대체재인가? 생각을 할 수도 있을 것 같습니다. 하지만 가끔은 이 두 개를 동시에 사용하는 경우도 존재합니다.

2025.01.30 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] 최빈값 찾아내기

 

대신 이렇게 사용할 때는 데이터의 흐름과 결과에 대한 명확한 이해를 바탕으로 사용하셔야 합니다.  

 

쿼리 실행의 순서:

  • GROUP BY는 먼저 실행되어 행을 그룹화하고 집계합니다.
  • OVER(PARTITION BY) 안에서 사용할 수 있는 열은 GROUP BY에 포함된 열 또는 그룹별 집계 결과여야 합니다.

 

 

order_id: 주문 번호

customer_id: 고객 ID

region: 지역

amount: 주문 금액

 

SELECT
    customer_id,
    region,
    SUM(amount) AS customer_sales,
    SUM(SUM(amount)) OVER (PARTITION BY region) AS region_sales
FROM orders
GROUP BY customer_id, region;