Contents
내가 작성한 쿼리
내가 작성한 쿼리
-- 0부터 23까지의 숫자를 생성하는 재귀 CTE (Common Table Expression)
WITH RECURSIVE HOURS AS (
SELECT 0 AS HOUR -- 시작값: 0시
UNION ALL
SELECT HOUR + 1 -- 1씩 증가
FROM HOURS
WHERE HOUR < 23 -- 23시까지 생성
)
-- 각 시간대별 입양된 동물 수 조회
SELECT
H.HOUR, -- 시간대 (0~23)
COALESCE(COUNT(A.ANIMAL_ID), 0) AS COUNT -- 해당 시간대의 입양 횟수 (NULL이면 0으로 처리)
FROM HOURS H -- 0~23까지의 시간 테이블 (기준 테이블)
LEFT JOIN ANIMAL_OUTS A -- 동물 입양 테이블과 LEFT JOIN
ON H.HOUR = HOUR(A.DATETIME) -- DATETIME에서 시간(HOUR) 추출 후 매칭
GROUP BY H.HOUR -- 시간대별로 그룹화
ORDER BY H.HOUR; -- 시간대 순서대로 정렬
Share article