web developer๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

[Oracle] PIVOT ์‚ฌ์šฉํ•˜๊ธฐ ๋ณธ๋ฌธ

DB

[Oracle] PIVOT ์‚ฌ์šฉํ•˜๊ธฐ

natrue 2021. 5. 25. 20:50
728x90

* PIVOT 

 - ํ–‰์„ ์—ด๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ธฐ์กด GROUP BY์™€ ์ง‘๊ณ„ ํ•จ์ˆ˜(MAX, SUM ๋“ฑ), DECODE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋Œ€์ฒด.

- ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง€๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 

PIVOT ๊ธฐ๋ณธ ๋ฌธ๋ฒ• 

SELECT ์ปฌ๋Ÿผ
FROM  (์กฐํšŒํ•  ๋ฐ์ดํ„ฐ select๋ฌธ) on ํ…Œ์ด๋ธ”
PIVOT 
(
    ์ง‘๊ณ„ํ•จ์ˆ˜(ํ‘œํ˜„์‹) 
    FOR pivot๋Œ€์ƒ์ปฌ๋Ÿผ 
    IN (์ปฌ๋Ÿผ์œผ๋กœ ์‚ฌ์šฉํ•  row ๊ฐ’ = ํ–‰์œผ๋กœ ์˜ฌ๋ฆด row)
);

PIVOT ์ ˆ : ๊ทธ๋ฃน ํ•จ์ˆ˜(GROUP BY)๊ฐ€ ์ ์šฉ๋œ ์ปฌ๋Ÿผ์„ ์ •์˜

GROUP BY๊ฐ€ ๋“ค์–ด๊ฐ„ ์ฟผ๋ฆฌ์—์„œ SELECT SUM(CNT),AVC(CNT) ๊ตฌ์ ˆ๊ณผ ๊ฐ™๋‹ค.  

PIVOT FOR ์ ˆ : PIVOT์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ์ปฌ๋Ÿผ์„ ์ •์˜ 

GROUP BY์ ˆ์— ๋’ค๋”ฐ๋ฅด๋Š” ์ปฌ๋Ÿผ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค. 

PIVOT IN ์ ˆ : PIVOT FOR์ ˆ์—์„œ ์ •์˜ํ•œ ์ปฌ๋Ÿผ์—์„œ ํ•„ํ„ฐ๋ง์„ ์ •์˜ 

WHERE์ ˆ๊ณผ ๊ฐ™์€ ํ•„ํ„ฐ๋ง ์—ญํ• ์„ ํ•œ๋‹ค. 

 

 

 

 

Oracle PIVOT() ํ•จ์ˆ˜ ์‚ฌ์šฉ

์œ„ ๊ทธ๋ฆผ ์ฒ˜๋Ÿผ ํ–‰์„ ์—ด๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋กœ ํ†ต๊ณ„์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์‹ค์ œ๋กœ ํšŒ์‚ฌ์—์„œ ํ†ต๊ณ„ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ์— ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์—ˆ๋‹ค. ํ–‰์„ ์—ด๋กœ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฐœ๋…์ด ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•„์„œ ์‚ฌ

velog.io