๐Ÿงฉ Algorithm/[Programmers] SQL ๊ณ ๋“์  KIT

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(1) (GROUP BY/Level 2)

devCloud 2022. 8. 5. 15:10
728x90
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋ฌธ์ œ ์„ค๋ช…

๋ณดํ˜ธ์†Œ์—์„œ 09:00๋ถ€ํ„ฐ 19:59๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์ž…์–‘์ด ๋ช‡ ๊ฑด์ด ๋ฐœ์ƒํ•˜๋Š” ์ง€ ์กฐํšŒํ•œ๋‹ค. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์‹œ๊ฐ„๋Œ€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

  1. ์‹œ๊ฐ„๊ณผ ๊ฑด์ˆ˜๋ฅผ ์กฐํšŒํ•ด์•ผ ํ•˜๋ฏ€๋กœ SELECT์ ˆ์— DATETIME๊ณผ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ๋‹ค. ๋‚ ์งœ ๋ฐ์ดํ„ฐ์—์„œ ์‹œ๋งŒ ์ถ”์ถœํ•  ๋•Œ HOUR๋ฅผ ์“ฐ๊ณ , ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” COUNT ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 
  2. FROM์ ˆ์—๋Š” ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘์„ ๋ณด๋‚ธ ๋™๋ฌผ๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ANIMAL_OUTS๋ฅผ ์“ด๋‹ค.
  3. 09:00๋ถ€ํ„ฐ 19:59๊นŒ์ง€๋ผ๋Š” ์กฐํšŒํ•˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์œผ๋ฏ€๋กœ, WHERE์ ˆ์„ ์ด์šฉํ•œ๋‹ค.
  4. ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ๋ฌถ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” GROUP BY๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  5. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์‹œ๊ฐ„๋Œ€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์œผ๋ฏ€๋กœ ORDER BY๋ฅผ ์ด์šฉํ•œ๋‹ค. ์ด๋•Œ, ์นผ๋Ÿผ๋ช… ๋’ค์— ์จ์•ผ ํ•˜๋Š” ASC ์˜ค๋ฆ„์ฐจ์ˆœ ํ‚ค์›Œ๋“œ๋Š” ๋””ํดํŠธ ๊ฐ’์ด๋ฏ€๋กœ ์ƒ๋žตํ•œ๋‹ค.

Solution

SELECT HOUR(DATETIME), COUNT(DATETIME) 
FROM ANIMAL_OUTS 
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);
728x90