header-img
Info :
728x90

์ด๋ ‡๊ฒŒ ๋˜๋Š”๋ฐ... ?
๋‚ด๋Š” ์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค..

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ์ฐจํŠธ์— ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ํŽธํ•˜๋‹ค.

์–ด์ผ€ํ•˜๋ƒ..

chatGPT ๋ณด๋‹ค ๋” ํ™•์‹คํ•œ ์šฐ๋‹นํƒ•ํƒ• ๊ฐœ๋ฐœ์ž ์ง€์ธํ†ก๋ฐฉ

ํ”ผ๋ฒ— ์„ ์•„์˜ˆ ์ƒ๊ฐํ•˜์ง€๋„ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ.. ๊ฐ€๋ณด์ž๊ณ 

PIVOT ๋ฌธ๋ฒ•

SELECT *
  FROM ( ํ”ผ๋ฒ—ํ•  ์ฟผ๋ฆฌ๋ฌธ ) AS result
 PIVOT ( ๊ทธ๋ฃนํ•ฉ์ˆ˜(์ง‘๊ณ„์ปฌ๋Ÿผ) FOR ํ”ผ๋ฒ—๋Œ€์ƒ์ปฌ๋Ÿผ IN ([ํ”ผ๋ฒ—์ปฌ๋Ÿผ๊ฐ’] ... ) AS pivot_result

์ฐธ๊ณ 1. ์„œ๋ธŒ์ฟผ๋ฆฌ์—๋Š” order by ๊ฐ™์€ ๊ฑฐ ์ง‘์–ด ๋„ฃ์œผ๋ฉด ์•ˆ๋จ. ์˜ค๋ฅ˜ ํ„ฐ์ง„๋‹ค.
์ฐธ๊ณ 2. ๊ทธ๋ฃนํ•จ์ˆ˜๋Š” SUM(), COUNT(), AVG() ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฐธ๊ณ 3. ํ”ผ๋ฒ—์ปฌ๋Ÿผ๊ฐ’์€ ํ•œ๋ฒˆ ์ง€์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ๊ณ ์ •์ ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.
์ฐธ๊ณ 4. ํ”ผ๋ฒ—์ปฌ๋Ÿผ๊ฐ’์˜ ๋Œ€๊ด„ํ˜ธ([ ])๋Š” ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
์ฐธ๊ณ 5. FROM์ ˆ๊ณผ PIVOT์ ˆ์˜ ๋ณ„์นญ(result, pivot_result)์€ ๊ผญ ๋ถ™์—ฌ์ค˜์•ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฉ‹๋Œ€๋กœ ๋ฐ”๊ฟ”์“ฐ์ง€ ๋ง์ž.
์™œ๋ƒ๋ฉด ๋‚ด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์‹œ๊ฐ„ ํ—ˆ๋น„๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค
๐Ÿซฅ๐Ÿถ

์‚ฌ์šฉ ์˜ˆ์ œ

select * 
from 
	(
	select s.STATUS_NM as 'NAME'
	,	case
		when datediff(week, a.CREATE_DATE, getdate()) <= 1 THEN '1'
		when datediff(week, a.CREATE_DATE, getdate()) <= 2 THEN '2'
		when datediff(week, a.CREATE_DATE, getdate()) <= 3 THEN '3'
		else '4'
		end as 'WEEKRANGE', COUNT(a.STATUS_ID) AS 'NUM'
		from [SFKR_ISS].dbo.ARTICLE a WITH(NOLOCK)
			join [SFKR_ISS].dbo.STATUS s ON a.STATUS_ID = s.STATUS_ID
		where a.ORG_ID = '1'
                AND a.CREATE_DATE BETWEEN '1989-01-01' AND '2023-04-04'
                --AND a.USE_YN = 'Y'
		group by a.STATUS_ID, s.STATUS_NM, case
		when datediff(week, a.CREATE_DATE, getdate()) <= 1 THEN '1'
	when datediff(week, a.CREATE_DATE, getdate()) <= 2 THEN '2'
	when datediff(week, a.CREATE_DATE, getdate()) <= 3 THEN '3'
	else '4'
	end
	) as result
	PIVOT (
	sum(NUM) FOR WEEKRANGE IN ([4],[3],[2],[1]) 
	) as pivot_result

๋„์›€์ด ๋ ๋ž€๊ฐ€๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๋Œ€์ถฉ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ–ˆ๊ณ ,

๊ฒฐ๊ณผ

๊น”๋”ํ•ด์กŒ๋‹ค.

๋งŒ์•ฝ์— ์ € ์ด๋ฆ„์ด ๋ณ€๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์ ธ์•ผํ•˜๋ฉด ๋™์ ์ฟผ๋ฆฌ๋กœ ์งœ์•ผํ•˜์ง€๋งŒ ๋‚˜๋Š” 4,3,2,1 ๋กœ ํ”ฝ์Šค๋œ ๊ฐ’๋“ค์ด์–ด์„œ.. ๊ทธ๋ƒฅ ํ”ผ๋ฒ—์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
๋‹ค์Œ์— ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ๋™์ ์ฟผ๋ฆฌ๋„ ํฌ์ŠคํŒ…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

728x90
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ