Home

입양 시각 구하기(2)

Link

Tables

erDiagram
	ANIMAL_OUTS {
		ANIMAL_ID VARCHAR
		ANIMAL_TYPE VARCHAR
		DATETIME DATETIME
		NAME VARCHAR
		SEX_UPON_OUTCOME VARCHAR
	}
Mermaid
복사

Question

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

Dataflow

datatime agg -> date_format
mysql에서 recursive를 사용하는 방법이 있나라는 생각을 하고 검색해봄
0 ~23 까지 빈 테이블을 만들어야함

Answer

WITH RECURSIVE seq AS ( SELECT 0 AS n UNION ALL SELECT n + 1 FROM seq WHERE n < 23 ), hours AS ( SELECT HOUR(DATETIME) AS hour FROM ANIMAL_OUTS ) SELECT s.n AS HOUR, COUNT(h.hour) AS COUNT FROM seq s LEFT JOIN hours h ON s.n = h.hour GROUP BY s.n ORDER BY s.n ASC;
SQL
복사