[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2) (MySQL)

๋ฐ˜์‘ํ˜•

๐ŸŒฑ ๋ฌธ์ œ

 

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

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

programmers.co.kr

0์‹œ๋ถ€ํ„ฐ 23์‹œ๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ๋ฐœ์ƒํ•œ ์ž…์–‘ ๊ฑด์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

๐ŸŒฑ ํ’€์ด

1. ๋ณ€์ˆ˜ ์„ค์ •

์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MySQL์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
SET @[๋ณ€์ˆ˜๋ช…] := [์ดˆ๊ธฐ๊ฐ’];
=
์—ฐ์‚ฐ์ž๋ฅผ ์จ๋„ ๋˜์ง€๋งŒ ๋น„๊ต์—ฐ์‚ฐ(๊ฐ™๋‹ค)๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ :=๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


  
SET @hour := -1;
SELECT (@hour := @hour + 1) AS 'HOUR'
FROM ANIMAL_OUTS
WHERE @hour < 23;

์œ„์˜ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

2. ์„œ๋ธŒ ์ฟผ๋ฆฌ

(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT

์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์•ž์—์„œ ์„ค์ •ํ•œ @hour ๋ณ€์ˆ˜๊ฐ€ 0์ผ๋•Œ๋ถ€ํ„ฐ 23์ผ ๋•Œ๊นŒ์ง€์˜ ๊ฐ row๋ฅผ ์นด์šดํŠธํ•œ ๊ฐ’์„ COUNT ์ปฌ๋Ÿผ ๊ฐ’์œผ๋กœ SELECT ํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŒฑ ์ฟผ๋ฆฌ


  
SET @hour := -1;
SELECT (@hour := @hour + 1) AS 'HOUR',
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23;
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€