[프로그래머스 -MYSQL] 입양 시각 구하기(1)

2022. 1. 30. 22:20Computer Science/Algorithm

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

SELECT HOUR(OUTS.DATETIME), COUNT(HOUR(OUTS.DATETIME))
FROM ANIMAL_OUTS AS OUTS
WHERE HOUR(DATETIME)<'20' AND HOUR(OUTS.DATETIME) >'08'
GROUP BY HOUR(OUTS.DATETIME)
ORDER BY HOUR(OUTS.DATETIME)
  1. 각 시간대별로 입양이 일어난 건수 조회
    - GROUP BY 로 시간대를 묶는다
    - HOUR 로 DATETIME 을 묶으면 시간대로 묶을 수 있다
  2. 09:00~19:59까지라는 조건이 있음
    - HAVING 이 아닌 WHERE 절로 조건을 걸어야 함.

    - HAVING은 GROUP BY로 이미 묶은 행에 대해서 처리를 하는 것이기 때문에 WHERE절에서 조건을 걸어야 함. 

- HAVING, WHERE절의 차이를 아는 것이 중요함

함수명  설명
HAVING 집계함수만 사용할 수 있음
(COUNT, SUM, AVG, MIN, MAX)
WHERE 집계함수를 사용할 수 없음
(비교 연산 등이 사용됨) 

 

반응형