WITH ec_order AS ( SELECT 'imjung' id, 'TV03' cd, 1785 amt, TO_DATE('20180101', 'yyyymmdd') dt FROM dual UNION ALL SELECT 'supark', 'NB02' , 750, TO_DATE('20180201', 'yyyymmdd') FROM dual UNION ALL SELECT 'supark', 'PRT01', 235, TO_DATE('20180301', 'yyyymmdd') FROM dual UNION ALL SELECT 'usko' , 'NB01' , 930, TO_DATE('20180301', 'yyyymmdd') FROM dual UNION ALL SELECT 'usko' , 'NB02' , 999, TO_DATE('20180401', 'yyyymmdd') FROM dual ) SELECT CASE GROUPING_ID(id, cd) WHEN 2 THEN '상품 집계' WHEN 3 THEN '전체 합계' ELSE id END 주문자_id , CASE GROUPING_ID(id, cd) WHEN 1 THEN '회원 집계' ELSE cd END 주문상품 , SUM(amt) 결제금액 FROM ec_order a WHERE dt >= TO_DATE('20180101', 'yyyymmdd') AND dt < TO_DATE('20180401', 'yyyymmdd') GROUP BY CUBE(id, cd) ORDER BY a.id, a.cd ;