Problem
๋ฌธ์ ์ค๋ช
ANIMAL_OUTSย ํ
์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์์ ์
์ ๋ณด๋ธ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ
์ด๋ธ์
๋๋ค.ย ANIMAL_OUTSย ํ
์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ,ย ANIMAL_ID,ย ANIMAL_TYPE,ย DATETIME,ย NAME,ย SEX_UPON_OUTCOME๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข
, ์
์์ผ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋
๋๋ค.
๋ณดํธ์์์๋ ๋ช ์์ ์
์์ด ๊ฐ์ฅ ํ๋ฐํ๊ฒ ์ผ์ด๋๋์ง ์์๋ณด๋ ค ํฉ๋๋ค. 09:00๋ถํฐ 19:59๊น์ง, ๊ฐ ์๊ฐ๋๋ณ๋ก ์
์์ด ๋ช ๊ฑด์ด๋ ๋ฐ์ํ๋์ง ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ๊ฒฐ๊ณผ๋ ์๊ฐ๋ ์์ผ๋ก ์ ๋ ฌํด์ผ ํฉ๋๋ค.
์์
SQL๋ฌธ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์์ผ ํฉ๋๋ค.
Code
ย #1
Idea
ย Code
SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR BETWEEN 9 AND 20
ORDER BY HOUR(DATETIME)
SQL
๋ณต์ฌ
Solution
Commentary
having ์ ์์ ์ฌ์ฉํ๋ ์ด ์ด๋ฆ์ ์์ํ ์ด์ด๋ฆ์ด์ด์ผ ํ๋ค. (ํจ์๋ฅผ ํตํด ๋ณํ์ ๊ฐํ๋ฉด ์ ๋จ. alias ๋ ๋จ)
-- ์๋ฌ
SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR(DATETIME) BETWEEN 9 AND 20 -- ๋ถ๋ฑํธ ์ด์ฉํ๋ ๋ฐฉ์๋ ๋น์ฐํ ๊ฐ๋ฅ
ORDER BY HOUR(DATETIME)
SQL
๋ณต์ฌ
HOUR(DATETIME) ์ฒ๋ผ ํจ์๋ฅผ ๋ฎ์ด์์ด ์ด์ having ์ ์์ ์ฌ์ฉ๋ชปํ๋ค.