🔗 https://school.programmers.co.kr/learn/courses/30/lessons/59413
WITH RECURSIVE NUM AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1 FROM NUM
WHERE HOUR < 23
)
SELECT
n.HOUR,
COALESCE(t.DATE_COUNT,0) AS COUNT
FROM
NUM n
LEFT JOIN (
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) DATE_COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)) t
ON n.HOUR = t.HOUR
ORDER BY
HOUR ASC;