SQL/프로그래머스
[GROUP BY] 입양 시각 구하기(1)
소금깨
2022. 5. 20. 20:02
문제 설명과 예시
풀이 과정
각 시간대별로 입양이 몇 건이나 발생
=> (각 시간대별) GROUP BY로 시간대 그룹
=> (몇 건) 고유값인 ANIMAL_ID를 COUNT하기
09:00 부터 19:59 까지
=> where로 시간 조건을 걸어야 함
=> 부터~까지니까 between 사용하면 될 것 같음 (and도 사용 가능)
시간대 순으로 정렬
=> ORDER BY
정답
MYSQL/AND
SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >8
AND HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY 1;
ORACLE/BETWEEN
SELECT TO_CHAR(DATETIME,'HH24') AS "HOUR"
,COUNT(ANIMAL_ID) AS "COUNT"
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME,'HH24') BETWEEN '09' AND '19'
GROUP BY TO_CHAR(DATETIME,'HH24')
ORDER BY 1