SUM() OVER (PARTITION BY) 그룹별 합계 정렬
2024. 3. 6. 23:22ㆍDBMS/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 |