๐Ÿ“Š Data Analysis/๐ŸŽฏ Project

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ : ์‚ฌํšŒ ์ดˆ๋…„์ƒ์˜ ์ „์…‹์ง‘ ๊ตฌํ•˜๊ธฐ (2)

ny:D 2024. 5. 4. 22:48

 

 

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ : ์‚ฌํšŒ ์ดˆ๋…„์ƒ์˜ ์ „์…‹์ง‘ ๊ตฌํ•˜๊ธฐ (1)

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ : ์‚ฌํšŒ ์ดˆ๋…„์ƒ์˜ ์ „์…‹์ง‘ ๊ตฌํ•˜๊ธฐ๋ถ„์„ ๋ชฉ์  : ์„œ์šธ์— ์ƒ๊ฒฝํ•œ ์‚ฌํšŒ ์ดˆ๋…„์ƒ์ด ์‚ด ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ์ „์…‹์ง‘์„ ์ฐพ๋Š” ๊ฒƒ.๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ : ์„œ์šธ์‹œ ์—ด๋ฆฐ ๋ฐ์ดํ„ฐ ๊ด‘์žฅRent : ์„œ์šธํŠน๋ณ„์‹œ ์ „

archivenyc.tistory.com

 

๐Ÿ’พ  ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

1. ์„œ์šธํŠน๋ณ„์‹œ ์ „์›”์„ธ๊ฐ€ ์ •๋ณด (2022)

์ปฌ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐ ํƒ€์ž… ์กฐ๊ฑด
์ ‘์ˆ˜์—ฐ๋„ int  
์ž์น˜๊ตฌ ์ฝ”๋“œ int  
์ž์น˜๊ตฌ๋ช… varchar(50)  
๋ฒ•์ •๋™ ์ฝ”๋“œ int  
๋ฒ•์ •๋™๋ช… varchar(50)  
์ธต int 3์ธต ์ด์ƒ
์ „์›”์„ธ ๊ตฌ๋ถ„ varchar(50) ์ „์„ธ
์ž„๋Œ€๋ฉด์  (m2) int 24m2 ์ด์ƒ
๋ณด์ฆ๊ธˆ (๋งŒ์›) int 2์–ต
๊ฑด์ถ•๋…„๋„ int ์ค€๊ณต ์™„๋ฃŒ์ผ๋กœ๋ถ€ํ„ฐ 10๋…„ ๋ฏธ๋งŒ
๊ฑด๋ฌผ์šฉ๋„ varchar(50) ์˜คํ”ผ์Šคํ…”, ์•„ํŒŒํŠธ
SELECT ์ ‘์ˆ˜๋…„๋„, ๊ฑด๋ฌผ๋ช…, ์ž์น˜๊ตฌ๋ช…, ๋ฒ•์ •๋™๋ช…,
	   if(๋ถ€๋ฒˆ=0,๋ณธ๋ฒˆ,CONCAT(๋ณธ๋ฒˆ,"-",๋ถ€๋ฒˆ)) ๋ฒˆ์ง€์ˆ˜, ์ธต,
	   DATE_FORMAT(๊ณ„์•ฝ์ผ, '%Y-%m-%d') ๊ณ„์•ฝ์ผ, 
	   ์ž„๋Œ€๋ฉด์ , `๋ณด์ฆ๊ธˆ(๋งŒ์›)`, 
	   ๊ฑด์ถ•๋…„๋„, ๊ฑด๋ฌผ์šฉ๋„, ๊ณ„์•ฝ๊ธฐ๊ฐ„, ์‹ ๊ทœ๊ณ„์•ฝ๊ตฌ๋ถ„, ๊ฐฑ์‹ ์ฒญ๊ตฌ๊ถŒ์‚ฌ์šฉ, ์ข…์ „๋ณด์ฆ๊ธˆ, ์ข…์ „์ž„๋Œ€๋ฃŒ,
	   COUNT(*)
FROM Rent_2022
WHERE ์ „์›”์„ธ๊ตฌ๋ถ„ = "์ „์„ธ" 
	  AND ์ธต >=3
	  AND ๊ฑด๋ฌผ์šฉ๋„ in ("์˜คํ”ผ์Šคํ…”","์•„ํŒŒํŠธ") 
	  AND ์ž„๋Œ€๋ฉด์  >= 24
	  AND `๋ณด์ฆ๊ธˆ(๋งŒ์›)` >= 20000
	  AND (์ ‘์ˆ˜๋…„๋„ - ๊ฑด์ถ•๋…„๋„) < 10
GROUP BY 3,4
  • column ๋ณ€๋™
    1. ๋ฒˆ์ง€์ˆ˜ column ์ƒ์„ฑ : “๋ณธ๋ฒˆ - ๋ถ€๋ฒˆ” ํ˜•ํƒœ๋กœ ๋ฒˆ์ง€์ˆ˜ ์นผ๋Ÿผ ์ƒ์„ฑ
    2. ๊ณ„์•ฝ์ผ date formate์„ “yyyymmdd”์—์„œ “yyyy-mm-dd”๋กœ ๋ณ€๊ฒฝ
    3. “๊ฑด๋ฌผ๋ช…”์„ 2๋ฒˆ์งธ ์ปฌ๋Ÿผ์œผ๋กœ ์ˆœ์„œ ๋ณ€๊ฒฝ (→ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•จ)
  • ์กฐ๊ฑด
    1. ์ „์›”์„ธ ๊ตฌ๋ถ„ = “์ „์„ธ” : ์ „์„ธ ๋งค๋ฌผ๋งŒ ์ถœ๋ ฅ
    2. ๊ฑด๋ฌผ์šฉ๋„ in (”์˜คํ”ผ์Šคํ…””, “์•„ํŒŒํŠธ”) : ์•„ํŒŒํŠธ ๋˜๋Š” ์˜คํ”ผ์Šคํ…” ๋งค๋ฌผ๋งŒ ์ถœ๋ ฅ

2. ์„œ์šธ์‹œ ์ƒ๊ถŒ๋ถ„์„

select ์ž์น˜๊ตฌ๋ช…, 
	   max(if(service='์Šคํฌ์ธ  ๊ฐ•์Šต', sum_s, 0)) '์Šคํฌ์ธ  ๊ฐ•์Šต',
	   max(if(service='์Šคํฌ์ธ ํด๋Ÿฝ', sum_s, 0)) '์Šคํฌ์ธ ํด๋Ÿฝ',
	   max(if(service='๋™๋ฌผ๋ณ‘์›', sum_s, 0)) '๋™๋ฌผ๋ณ‘์›'
from
(
select ์ž์น˜๊ตฌ๋ช…, ์„œ๋น„์Šค_์—…์ข…_์ฝ”๋“œ_๋ช… service, sum(์ ํฌ_์ˆ˜) sum_s
from shop
where ์ž์น˜๊ตฌ๋ช… in ('๋™๋Œ€๋ฌธ๊ตฌ', '๊ด‘์ง„๊ตฌ', '์†กํŒŒ๊ตฌ', '์„œ์ดˆ๊ตฌ', '์šฉ์‚ฐ๊ตฌ', '์ค‘๊ตฌ', '์„ฑ๋™๊ตฌ', '๊ฐ•๋‚จ๊ตฌ', '๊ด€์•…๊ตฌ')
	  and ์„œ๋น„์Šค_์—…์ข…_์ฝ”๋“œ_๋ช… in ('์Šคํฌ์ธ  ๊ฐ•์Šต', '์Šคํฌ์ธ ํด๋Ÿฝ', '๋™๋ฌผ๋ณ‘์›')
	  and ๊ธฐ์ค€_๋…„๋ถ„๊ธฐ_์ฝ”๋“œ = 20221
group by 1, 2
) t
group by 1
order by 1;

 

3. ์„œ์šธ์‹œ ์ฃผ์š” ๊ณต์› ํ˜„ํ™ฉ

SELECT ์ง€์—ญ, COUNT(*) ๊ณต์›
FROM (SELECT ๊ณต์›๋ช…, ์ง€์—ญ
       FROM Park
       WHERE ๊ณต์›์ฃผ์†Œ like '%์„œ์šธ%')a
GROUP BY 1
ORDER BY 2 DESC

 

4. ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ

 

SELECT ์ž์น˜๊ตฌ๋ช…, `ํ‰๊ท ์ „์„ธ๊ธˆ(๋งŒ์›)`, ๋™๋ฌผ๋ณ‘์›, ์Šคํฌ์ธ ํด๋Ÿฝ, ์Šคํฌ์ธ ๊ฐ•์Šต, ๊ณต์›, ๋งค๋ฌผ์ˆ˜
FROM (SELECT ์ž์น˜๊ตฌ๋ช…, COUNT(*) ๋งค๋ฌผ์ˆ˜, ROUND(AVG(`๋ณด์ฆ๊ธˆ(๋งŒ์›)`),0)	"ํ‰๊ท ์ „์„ธ๊ธˆ(๋งŒ์›)"
 	  FROM (SELECT * FROM Rent_2022
	   		WHERE ์ „์›”์„ธ๊ตฌ๋ถ„ = "์ „์„ธ" 
	   		 	  AND ์ž์น˜๊ตฌ๋ช… in ('๋™๋Œ€๋ฌธ๊ตฌ', '๊ด‘์ง„๊ตฌ', '์†กํŒŒ๊ตฌ', '์„œ์ดˆ๊ตฌ', '์šฉ์‚ฐ๊ตฌ', '์ค‘๊ตฌ', '์„ฑ๋™๊ตฌ', '๊ฐ•๋‚จ๊ตฌ', '๊ด€์•…๊ตฌ')
	   		 	  AND ์ธต >=3
	   		 	  AND ๊ฑด๋ฌผ์šฉ๋„ in ("์˜คํ”ผ์Šคํ…”","์•„ํŒŒํŠธ") 
	   	   		  AND ์ž„๋Œ€๋ฉด์  >= 24
	   		 	  AND `๋ณด์ฆ๊ธˆ(๋งŒ์›)` <= 20000
	   		 	  AND (์ ‘์ˆ˜๋…„๋„ - ๊ฑด์ถ•๋…„๋„) < 10) r 
	   	GROUP BY 1 ) a
INNER JOIN (SELECT ์‹œ๊ตฐ๊ตฌ๋ช…,
 	   max(if(์—…์ข… = "๋™๋ฌผ๋ณ‘์›", ์ ํฌ์ˆ˜, NULL)) "๋™๋ฌผ๋ณ‘์›",
 	   max(if(์—…์ข… = "์Šคํฌ์ธ ํด๋Ÿฝ", ์ ํฌ์ˆ˜, NULL)) "์Šคํฌ์ธ ํด๋Ÿฝ",
 	   max(if(์—…์ข… =  "์Šคํฌ์ธ  ๊ฐ•์Šต", ์ ํฌ์ˆ˜, NULL)) "์Šคํฌ์ธ ๊ฐ•์Šต"
	  FROM (SELECT ์‹œ๊ตฐ๊ตฌ๋ช…, ์„œ๋น„์Šค_์—…์ข…_์ฝ”๋“œ_๋ช… ์—…์ข…, sum(์ ํฌ_์ˆ˜) ์ ํฌ์ˆ˜
	  		FROM shop s INNER JOIN addr a ON s.ํ–‰์ •๋™_์ฝ”๋“œ*100 =a.ํ–‰์ •๋™์ฝ”๋“œ
		    WHERE ๊ธฐ์ค€_๋…„๋ถ„๊ธฐ_์ฝ”๋“œ = 20221 and (์„œ๋น„์Šค_์—…์ข…_์ฝ”๋“œ_๋ช… = "๋™๋ฌผ๋ณ‘์›" or ์„œ๋น„์Šค_์—…์ข…_์ฝ”๋“œ_๋ช… like '%์Šคํฌ์ธ %')
		    	  and ์‹œ๊ตฐ๊ตฌ๋ช… in ('๋™๋Œ€๋ฌธ๊ตฌ', '๊ด‘์ง„๊ตฌ', '์†กํŒŒ๊ตฌ', '์„œ์ดˆ๊ตฌ', '์šฉ์‚ฐ๊ตฌ', '์ค‘๊ตฌ', '์„ฑ๋™๊ตฌ', '๊ฐ•๋‚จ๊ตฌ', '๊ด€์•…๊ตฌ') 
		    GROUP BY 1,2)t
	  WHERE ์‹œ๊ตฐ๊ตฌ๋ช… in ('๋™๋Œ€๋ฌธ๊ตฌ', '๊ด‘์ง„๊ตฌ', '์†กํŒŒ๊ตฌ', '์„œ์ดˆ๊ตฌ', '์šฉ์‚ฐ๊ตฌ', '์ค‘๊ตฌ', '์„ฑ๋™๊ตฌ', '๊ฐ•๋‚จ๊ตฌ', '๊ด€์•…๊ตฌ') 
	  GROUP BY 1) b
INNER JOIN (SELECT ์ง€์—ญ, COUNT(*) ๊ณต์›
			FROM (SELECT ๊ณต์›๋ช…, ์ง€์—ญ FROM Park WHERE ๊ณต์›์ฃผ์†Œ like '%์„œ์šธ%' 
			AND ์ง€์—ญ 	in ('๋™๋Œ€๋ฌธ๊ตฌ', '๊ด‘์ง„๊ตฌ', '์†กํŒŒ๊ตฌ', '์„œ์ดˆ๊ตฌ', '์šฉ์‚ฐ๊ตฌ', '์ค‘๊ตฌ', '์„ฑ๋™๊ตฌ', '๊ฐ•๋‚จ๊ตฌ', '๊ด€์•…๊ตฌ'))a
			GROUP BY 1) c
WHERE a.์ž์น˜๊ตฌ๋ช… = b.์‹œ๊ตฐ๊ตฌ๋ช… and b.์‹œ๊ตฐ๊ตฌ๋ช… = c.์ง€์—ญ
ORDER BY 7 DESC