티스토리 뷰

Skill/postgreSQL

postgresql 집계함수 사용

진열사랑 2024. 4. 3. 17:38

SELECT *
,SUM(CASE WHEN pymt_stlv1_cd = '합계' OR cid = '소계' THEN 0 ELSE SS.TX_AMT end) OVER(PARTITION BY pymt_stlv1_cd) AS sub_sum
,SUM(CASE WHEN pymt_stlv1_cd = '합계' OR cid = '소계' THEN 0 ELSE SS.TX_AMT end) OVER() AS total_sum
FROM (
SELECT CASE WHEN GROUPING(P.PYMT_STLV1_CD) = 1 THEN '합계' ELSE p.pymt_stlv1_cd END AS pymt_stlv1_cd
,CASE WHEN GROUPING(ss.cid) = 1 THEN '소계' ELSE SS.CID END AS cid
,SUM(ss.tx_amt) AS tx_amt
FROM SPSDB.TB_SLS_STST SS
JOIN SPPDB.TB_PYMT P ON SS.PYMT_CD = P.PYMT_CD
WHERE SS.ORG_TX_YMD BETWEEN '2024-03-01'::DATE AND '2024-03-31'::DATE
GROUP BY ROLLUP(P.PYMT_STLV1_CD, SS.CID)
) ss
;

'Skill > postgreSQL' 카테고리의 다른 글

postgreSQL GROUPING SETS  (0) 2024.03.20
postgresql 여러 테이블 수정  (0) 2024.01.19
postgresql 날짜 테이블 생성  (0) 2023.12.27
PostgreSQL] count filter 이용  (0) 2023.11.16
[PostgreSQL] ROLLUP을 사용해 소계 구하기  (0) 2023.11.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함