[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(2) MySQL
๋ฌธ์ : ํ๋ก๊ทธ๋๋จธ์ค_์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(2)
๋ฌธ์ ์ค๋ช
๋ฌธ์ ์์ ๋๋ฌผ ๋ณดํธ์์์ ์
์ ๋ณด๋ธ ๋๋ฌผ์ ์ ๋ณด๊ฐ ๋ด๊ธด ํ
์ด๋ธ์ด ์ฃผ์ด์ง๋๋ค.
ํ
์ด๋ธ์ DATETIME
์นผ๋ผ์๋ ๋๋ฌผ์ ์
์ ๋ณด๋ธ ์๊ฐ์ด ์ฃผ์ด์ง๋๋ฐ, ์ด๋ ๊ฐ ์๊ฐ๋ณ๋ก(0์ ~ 23์) ์
์์ด ๋ช ๊ฑด ๋ฐ์ํ๋์ง๋ฅผ ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑํด์ผ ํฉ๋๋ค.
Solution
์ฌ์ฉ์ ๋ณ์ ์ ์ธ, Subquery
@hour
๋ผ๋ ์ฌ์ฉ์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ -1๋ก ์ด๊ธฐํํด ์ค๋๋ค.(sql์ ์ฌ์ฉ์ ๋ณ์๋ @~๋ก ์์ํฉ๋๋ค.)
@hour์ 1์ฉ ์ฆ๊ฐ์์ผ์ฃผ๋ฉด์ ๊ฐ ์๊ฐ๋ณ count๋ฅผ ์กฐํํ๋ ์๋ธ์ฟผ๋ฆฌ๋ฌธ
์ผ๋ก ์๊ฐ๋ณ ์
์ ์๋ฅผ ์กฐํํฉ๋๋ค.
DATETIME์์ HOUR ์ ๋ณด๋ง ์ถ์ถํด์ผ ํ๋ฏ๋ก, HOUR() ํจ์
๋ฅผ ์ด์ฉํฉ๋๋ค.
์ด๋ hour+1๊น์ง ์กฐํ๋๋ฏ๋ก, WHERE ์ ์ ์กฐ๊ฑด์ 23๋ณด๋ค ์์์ผ ํฉ๋๋ค.
ํ์ด
SET @hour = -1;
SELECT (@hour := @hour+1) as HOUR,
(SELECT COUNT(DATETIME) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour)
as COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23;
'Database > DB ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ด์ง ๊ธฐ๋ก ์ฐพ๊ธฐ (0) | 2022.03.15 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ณดํธ์์์ ์ค์ฑํํ ๋๋ฌผ (MySQL) (0) | 2022.03.10 |