안녕하세요
오라클로 PIVOT 피봇을 해야하는 경우가 생겨서 문의드립니다.
아래와 같은 값을 표현해야 하는게 전혀 모르겠어서 문의드립니다.ㅠㅠ
WITH T AS
(
SELECT '20170621' A, '조식' B, '김치' C FROM DUAL UNION ALL
SELECT '20170621' A, '조식' B, '김' C FROM DUAL UNION ALL
SELECT '20170621' A, '조식' B, '밥' C FROM DUAL UNION ALL
SELECT '20170621' A, '조식' B, '국' C FROM DUAL UNION ALL
SELECT '20170621' A, '중식' B, '김치' C FROM DUAL UNION ALL
SELECT '20170621' A, '중식' B, '김' C FROM DUAL UNION ALL
SELECT '20170621' A, '중식' B, '밥' C FROM DUAL UNION ALL
SELECT '20170621' A, '중식' B, '국' C FROM DUAL UNION ALL
SELECT '20170622' A, '조식' B, '김치국' C FROM DUAL UNION ALL
SELECT '20170622' A, '조식' B, '김밥' C FROM DUAL UNION ALL
SELECT '20170622' A, '조식' B, '조미김' C FROM DUAL UNION ALL
SELECT '20170622' A, '조식' B, '참치' C FROM DUAL UNION ALL
SELECT '20170622' A, '중식' B, '김치' C FROM DUAL UNION ALL
SELECT '20170622' A, '중식' B, '김' C FROM DUAL UNION ALL
SELECT '20170622' A, '중식' B, '밥' C FROM DUAL UNION ALL
SELECT '20170622' A, '중식' B, '국' C FROM DUAL
)
SELECT *
FROM T
위 데이터를 아래와 같이 표현해야하는데 가능한가요?
20170621 20170622
조식 김치 김치국
조식 김 김밥
조식 밥 조미김
조식 국 참치
중식 김치 김치
중식 김 김
중식 밥 밥
중식 국 국
부탁드리겠습니다.
SELECT *
FROM (SELECT a, b, c
, ROW_NUMBER() OVER(PARTITION BY a, b ORDER BY c) rn
FROM t
WHERE a IN ('20170621', '20170622')
)
PIVOT (MIN(c) FOR a IN (20170621, 20170622))
ORDER BY b, rn
;
마농님 언제나 감사합니다 ㅎ
즐거운 하루 되세요 ㅎ