취미가 좋다

입양 시각 구하기(1) 본문

SQL 문제풀이/프로그래머스

입양 시각 구하기(1)

benlee73 2021. 8. 12. 17:31

https://programmers.co.kr/learn/courses/30/lessons/59412

 

코딩테스트 연습 - 입양 시각 구하기(1)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

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

특정 시간 범위를 지정하기 위해 HAVINGHOUR 를 사용하였다.

 

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