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
복사
