SUM() OVER (PARTITION BY) 그룹별 합계 정렬

2024. 3. 6. 23:22DBMS/SQLQuery

반응형
SELECT REGION,PRODUCT, AMOUNT, SUM(AMOUNT) OVER(PARTITION BY PRODUCT ) FROM SALES;​

 

 

 

SELECT REGION,PRODUCT, AMOUNT,
SUM(AMOUNT) OVER(PARTITION BY PRODUCT ORDER BY AMOUNT) FROM SALES;

 

 

주어진 쿼리는 각 제품 그룹 내에서 AMOUNT를 오름차순으로 정렬한 후, 각 행에 대해 그룹 내에서 누적 합계를 계산합니다. 이는 SUM() 함수에 ORDER BY 절이 사용되었기 때문입니다.

 

 

주어진 쿼리에서 PRODUCT 그룹별로 AMOUNT를 내림차순으로 정렬하면서 그룹별 총합계를 유지하기 위해서는 다음과 같이 `ORDER BY` 절을 사용할 수 있습니다.


SELECT REGION, PRODUCT, AMOUNT,
       SUM(AMOUNT) OVER (PARTITION BY PRODUCT) AS TOTAL_AMOUNT
FROM SALES
ORDER BY PRODUCT, AMOUNT DESC;


```

위 쿼리는 먼저 PRODUCT로 파티션을 나누고, 각 그룹 내에서 AMOUNT를 내림차순으로 정렬합니다. 그리고 그룹별 총합계는 유지되도록 `SUM(AMOUNT) OVER (PARTITION BY PRODUCT)`을 사용합니다.

 
반응형

'DBMS > SQLQuery' 카테고리의 다른 글

계층쿼리에서 행의 관계파악  (0) 2024.03.07
속성 별 최대 값 행만 출력  (0) 2024.03.06
ROWS BETWEEN unbounded preceding and unbounded FOLLOWING  (0) 2024.03.04
ROLL UP CUBE GROUPING SETS  (0) 2024.03.03
PIVOT, CASE  (0) 2024.03.03