header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ

 

 

<๋ฐ์ดํ„ฐ ์ฒดํฌ>

<

๋ฌธ์ œ ์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์ž๋™์ฐจ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„ ๊ตฌํ•˜๊ธฐ

ํ…Œ์ด๋ธ”๋ช…: car_rental_company_rental_history์–ด๋А ์ž๋™์ฐจ ๋Œ€์—ฌ์ ์˜ ๋Œ€์—ฌ ๊ธฐ๋ก ํ…Œ์ด๋ธ” ๊ฒฌ๋ณธ 

์ปฌ๋Ÿผ๋ช…: history_id๋Œ€์—ฌ ๊ธฐ๋ก ์•„์ด๋””, car_id์ž๋™์ฐจ ์•„์ด๋””, start_date๋Œ€์—ฌ์‹œ์ž‘์ผ, end_date๋Œ€์—ฌ์ข…๋ฃŒ์ผ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ: 1๊ฐœ ํ…Œ์ด๋ธ”, 4๊ฐœ ์ปฌ๋Ÿผ, 160๊ฐœ ๋กœ์šฐ

>

>

 

 

 

 

<์‹œ๋‚˜๋ฆฌ์˜ค>

 

์—ฌ๊ธฐ ์–ด๋–ค ์ž๋™์ฐจ ๋Œ€์—ฌ์ ์ด ์žˆ๋‹ค. ์ด ์ž๋™์ฐจ ๋Œ€์—ฌ์ ์—์„œ๋Š” ๊ธฐ์กด ๊ณ ๊ฐ๋“ค์„ ํ™•์‹คํžˆ ์žก์•„๋‘๊ธฐ ์œ„ํ•ด ์ฃผ ๊ณ ๊ฐ์ธต์— ์ตœ๋Œ€ํ•œ์˜ ๊ฐ€๊ฒฉ ๋ฉ”๋ฆฌํŠธ๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ฒฉ ์ •์ฑ…์„ ๊ฐœํŽธํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋ฒˆ EDAํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„๋Š” ์ด๋ฅผ ์œ„ํ•œ ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๊ณผ์ •์ด๋‹ค. ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„์ด 7์ผ ์ด์ƒ์ธ ์ž๋™์ฐจ๋“ค์˜ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„(์ปฌ๋Ÿผ๋ช…: average_duration) ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

 

 

 

 

 

 

<ํ’€์ด>

 

๋จผ์ € ๋ฌธ์ œ๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ „์ฒด ๋ฆฌ์ŠคํŠธ์˜ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„์„ ๋ฆฌ์ŠคํŠธํ™”ํ•ด์•ผ ํ•œ๋‹ค. ํŒŒํŽธํ™”๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ์ฃผ๊ณ ,

 

 

GROUP BY car_id

 

 

์ด ๋ฐ์ดํ„ฐ์˜ ๊ธฐ์ค€์œผ๋กœ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„์„ ๋ฝ‘๋Š”๋‹ค. ๋Œ€์—ฌ ๊ธฐ๊ฐ„์€ ๋Œ€์—ฌ์ข…๋ฃŒ์ผ๊ณผ ๋Œ€์—ฌ์‹œ์ž‘์ผ์˜ ์ฐจ๋กœ ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋•Œ ๋Œ€์—ฌ์‹œ์ž‘์ผ ์—ญ์‹œ ํ•˜๋ฃจ๋กœ ๊ณ„์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ 1์„ ๋”ํ•ด ์ค˜์•ผ ํ•œ๋‹ค. ์ด ๊ฐ’์— ํ‰๊ท ์„ ์ ์šฉํ•ด ์ฃผ๊ณ  ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์งค ์ˆ˜ ์žˆ๋‹ค.

 

 

SELECT car_id
	, ROUND(AVG(DATEDIFF(end_date, start_date) + 1), 1) average_duration

 

 

์ด ์ค‘์—์„œ ํ‰๊ท  ๋Œ€์—ฌ ๊ธฐ๊ฐ„์ด 7์ผ ์ด์ƒ์ธ ๊ฐ’์„ ๋ฝ‘์œผ๋ ค๋ฉด HAVING์— ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. WHERE๊ฐ€ ์•„๋‹Œ HAVING์— ๋„ฃ๋Š” ์ด์œ ๋Š” ๊ทธ๋ฃน์˜ ์ง‘๊ณ„๊ฐ’(AVG) ๊ธฐ์ค€์œผ๋กœ ์—ฐ์‚ฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

HAVING average_duration >= 7

 

 

๋งˆ๋ฌด๋ฆฌํ•˜๋ฉด, ์™„์„ฑ๋œ ์‹์€ ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

 

 

SELECT car_id
        , ROUND(AVG(DATEDIFF(end_date, start_date) + 1), 1) average_duration
FROM car_rental_company_rental_history
GROUP BY car_id
HAVING average_duration >= 7
ORDER BY average_duration DESC, car_id DESC

 

 

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL