๊ฐ๋
https://extbrain.tistory.com/56
- WHERE๋ HAVING์ ํท๊น๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ WHERE๋ ๊ทธ๋ฃนํ ํ๊ธฐ ์ ์ด๊ณ , HAVING์ ๊ทธ๋ฃนํ ํ์ ์กฐ๊ฑด์ ๋๋ค.
์ ํ๋ณ๋ก ๊ฐฏ์๋ฅผ ์๊ณ ์ถ์ ๋ = GROUP BY
ํน์ ์ปฌ๋ผ์ ๊ทธ๋ฃนํ = GROUP BY
ํน์ ์ปฌ๋ผ์ ๊ทธ๋ฃนํํ ๊ฒฐ๊ณผ์ ์กฐ๊ฑด์ ๊ฒ = HAVING
์์ ๊ฐ์ table์ด ์๋ค๊ณ ํ์ ๋
group_by ํ๋ฉด name์ด ์๋ฆผ
์์ ๊ฐ์ด ๊ทธ๋ฃน๋ณ๋ก ๋ฌถ์ ์ ์๋ค.
๊ฐ๋ ๊ณ ์์ด ์ด๋ฆ์ด 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ๋ง ์ถ๋ ฅ , ๊ฐ์ ๊ณ ์์ด ์ด๋ฆ์ ๊ฐ์์ธ๊ธฐ
SELECT name,count(*) AS count FROM animal_ins
GROUP BY name
HAVING count(name)>=2
ORDER BY name
์๊ฐ๋(hour) ๋ณ๋ก ์ซ ์ ๋ ฌ, ๊ฐ ์๊ฐ๋์ ์ซ์ ๊ตฌํ๊ธฐ
SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 and HOUR <= 20
ORDER BY HOUR
0~23์, ๋ชจ๋ ๊ฐ์ฒด ์๋ฅผ ๊ตฌํ๋ผ
SELECT HOUR(datetime) HOUR, count(*) COUNT FROM ANIMAL_OUTS
GROUP BY HOUR(datetime)
HAVING HOUR>=0 and HOUR<=23
ORDER BY HOUR
์ด๋ฌ๋ฉด 7์~19์์ ๊ฐ : ๋ฌธ์ ์์์ 0์ด ์๋ ๊ฐ๋ค๋ง ๊ฐ์ ธ์์ง๋ค.
SET @hour := -1; // => ๋ณ์์ ์ธ
:= // => ๋์
์ฐ์ฐ์
SET @h := -1;
SELECT (@h := @h +1) as HOUR,
(SELECT count(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @h) as COUNT
FROM ANIMAL_OUTS
HAVING @h<23