취미가 좋다
입양 시각 구하기(1) 본문
https://programmers.co.kr/learn/courses/30/lessons/59412
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >=9 AND HOUR<20
ORDER BY HOUR
특정 시간 범위를 지정하기 위해 HAVING 과 HOUR 를 사용하였다.
HAVING 대신 아래처럼 WHERE 를 사용하여도 상관 없다.
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) < 20
SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)
혹은 BETWEEN .. AND .. 를 사용하여도 된다.
HAVING HOUR BETWEEN 9 AND 19
HAVING 절에는 GROUP BY 절에 있거나, 집계 함수가 사용된 컬럼만을 사용할 수 있다.
그래서 Alias 를 활용해야 하는데, GROUP BY 절에서는 Alias를 사용할 수 없다.
따라서 여기서 HOUR(DATETIME)과 같은 산술함수는 오지 못하고, SELECT 에서 사용한 Alias 를 사용해야 한다.
'SQL 문제풀이 > 프로그래머스' 카테고리의 다른 글
헤비 유저가 소유한 장소 (0) | 2021.08.12 |
---|---|
입양 시각 구하기(2) (0) | 2021.08.12 |
동명 동물 수 찾기 (0) | 2021.08.12 |
고양이와 개는 몇 마리 있을까 (0) | 2021.08.12 |
중복 제거하기 (0) | 2021.08.12 |
Comments