본문 바로가기
SQL 이야기

프로그래머스 GROUP BY (3) - 입양 시각 구하기(1)

by bjgu97 2022. 4. 2.
반응형

DATETIME 타입의 DATETIME의 시간(HOUR)을 구하기 위해서 HOUR() 함수를 사용하면 된다.

 

1) 각 시간대별로 건수 조회를 해야하므로 시간대별로 그룹화를 진행한다.

SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
GROUP BY HOUR

 

2) 각 그룹에 대한 조건이, 9시부터 19:59 사이라고 명시되어있다. 따라서 조건 추가.

-- HAVING 사용
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING (HOUR >=  9 AND HOUR < 20)

-- WHERE 사용
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
WHERE  (HOUR(DATETIME) >=  9 AND HOUR(DATETIME) < 20)
GROUP BY HOUR;

 

3) 시간대순으로 정렬

-- HAVING 사용
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING (HOUR >=  9 AND HOUR < 20)
ORDER BY HOUR(DATETIME);

-- WHERE 사용
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
WHERE (HOUR(DATETIME) >=  9 AND HOUR(DATETIME) < 20)
GROUP BY HOUR
ORDER BY HOUR;

댓글