티스토리 뷰

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 DDL  (0) 2024.08.23
postgresql 목록 갯수  (0) 2024.08.22
postgreSQL GROUPING SETS  (0) 2024.03.20
postgresql 여러 테이블 수정  (0) 2024.01.19
postgresql 날짜 테이블 생성  (0) 2023.12.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함