SET @INDEX_HOUR = -1;
SELECT
(@INDEX_HOUR := @INDEX_HOUR + 1) AS HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @INDEX_HOUR) AS COUNTS
FROM ANIMAL_OUTS
WHERE @INDEX_HOUR < 23
쿼리에서 변수 사용하기
WITH RECURSIVE TEMP AS(
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1
FROM TEMP
WHERE HOUR<23)
SELECT TEMP.HOUR, COUNT(HOUR(ANIMAL_OUTS.DATETIME)) AS COUNT
FROM TEMP LEFT JOIN ANIMAL_OUTS ON TEMP.HOUR = HOUR(ANIMAL_OUTS.DATETIME)
GROUP BY TEMP.HOUR
ORDER BY TEMP.HOUR