퇴근5분전

환경 : 오라클 12C

 

피봇은 주로 사용해왔으니... 원래 알던 개념이었다.

언피봇은 무조건 피봇의 반대라고 생각했었는데...

 

율촌 프로젝트 하면서 공부를 다시 하게 되었다.

언피봇과 피봇을 합치면 멋진 결과가 나오더라.

 - MES 생산결과를 뽑아 낼때 투입대비, 생산량을 뽑아내는 쿼리에 적용했었다.

 -- 탭키 간격이 안먹넹...

 

SELECT *
FROM
(
SELECT *
FROM
(
SELECT '데이타' A, 1 K, 10 DATA1, 20 DATA2
,'NO 1의 설명' NO1_DESC
,'NO 2의 설명' NO2_DESC
FROM DUAL
UNION ALL
SELECT '데이타' A, 2 K, 30 DATA1, 40 DATA2
,'NO 1의 설명' NO1_DESC
,'NO 2의 설명' NO2_DESC
FROM DUAL
UNION ALL
SELECT '데이타' A, 3 K, 50 DATA1, 60 DATA2
,'NO 1의 설명' NO1_DESC
,'NO 2의 설명' NO2_DESC
FROM DUAL
) A
UNPIVOT
(
( NO_DESC, DATA ) FOR
NO IN
(
(NO1_DESC, DATA1) AS 1,
(NO2_DESC, DATA2) AS 2
)
)
) T
PIVOT
(
MIN( DATA ) AS DATA FOR
K IN ( 1 , 2, 3 )
)
;

 

언피봇 한 결과
위 결과를 피봇한 결과

 

** 음... mssql이랑 다른가? 이상하게 동작하네...

   오라클은 위 문법에 맞춰서 작성하면 잘 되던뎅...

동일한 결과로 mssql로 만들려면 다르게 작성해야 한다.

 

unpivot 도 내가 원래 알던대로 mssql은 동작하고...

오라클로 테스트를 못해보니까 아쉽네...

뭔가 좀 다르게 동작하는 듯 한데... 어떻게 보면 같은것 같기도 하고...

다음에 오라클 쓸때가 오면 다시 비교해봐야겠다.

 

'# 7) 데이타베이스 > 오라클' 카테고리의 다른 글

집계함수 MIN, MAX에 해당하는 다른 컬럼값은?  (0) 2019.11.03
GROUP 콤마구분자로 연결하기  (0) 2019.11.03
달력2  (0) 2019.11.03
달력 1  (0) 2019.11.03
[오라클] 동적쿼리  (0) 2010.10.24