안녕하세요 쿼리를 작성하려고 하는데 어떤식으로 작성해야하는지 감이 잡히지 않아서 질문드립니다.
WITH TEST AS
(
SELECT '20170101', '사과', '100개' FROM DUAL UNION ALL
SELECT '20170101', '바나나', '200개' FROM DUAL UNION ALL
SELECT '20170101', '감', '300개' FROM DUAL UNION ALL
SELECT '20170102', '사과', '100개' FROM DUAL UNION ALL
SELECT '20170102', '바나나', '200개' FROM DUAL UNION ALL
SELECT '20170102', '감', '300개' FROM DUAL
)
SELECT * FROM TEST;
위 쿼리를 작동시키면
--------------------------------
20170101 사과 100개
20170101 바나나 200개
20170101 감 300개
20170102 사과 100개
20170102 바나나 200개
20170102 감 300개
-------------------------------- 이런식으로 데이터가 나오는데
-------------------------
20170101
사과 100개
바나나 200개
감 300개
20170102
사과 100개
바나나 200개
감 300개
-------------------------
이런식으로 일자가 해당 일자에 포함되는 데이터들의 상위에 노출되게끔 하고 싶습니다.
어떤식으로 해야할까요?
WITH TEST(a, b, c) AS ( SELECT '20170101', '사과', '100개' FROM DUAL UNION ALL SELECT '20170101', '바나나', '200개' FROM DUAL UNION ALL SELECT '20170101', '감', '300개' FROM DUAL UNION ALL SELECT '20170102', '사과', '100개' FROM DUAL UNION ALL SELECT '20170102', '바나나', '200개' FROM DUAL UNION ALL SELECT '20170102', '감', '300개' FROM DUAL ) SELECT NVL(b || c, a) FROM TEST GROUP BY a, ROLLUP((b, c)) ORDER BY a, GROUPING_ID(a,b,c) DESC