다중 행 0 1 630

by 냐냥 [Oracle 기초] [2022.05.13 22:21:18]


1.jpg (2,098,991Bytes)

오라클에 대해서 배우고 문제를 풀고 있는데 아무리 읽어도 어떻게 코드를 작성을 해야 할 지 막막하여 질문을 올립니다.

by 마농 [2022.05.15 23:33:04]
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
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입