-- 코드를 입력하세요
SET @rownum:=-1;
WITH TEMP01 AS (
SELECT DISTINCT @rownum:=@rownum+1 AS ROWNUM
, HOUR(DATETIME)
FROM ANIMALOUTS
LIMIT 24
),
TEMP02 AS (
SELECT HOUR(DATETIME) AS HOUR
, COUNT(*) AS COUNT
FROM ANIMALOUTS
GROUP BY HOUR(DATETIME)
)
SELECT A.ROWNUM AS HOUR
, CASE WHEN B.COUNT IS NULL THEN 0
ELSE B.COUNT
END AS COUNT
FROM TEMP01 A
LEFT OUTER JOIN TEMP02 B
ON A.ROWNUM = B.HOUR
ORDER BY A.ROWNUM
이렇게 통과는 했지만 with절을 두개쓴게 마음에 안드네요..
WITH RECURSIVE
cte AS
( SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1
FROM cte
WHERE HOUR < 23 )
SELECT cte.hour, COUNT(ani.ANIMAL_ID)
FROM cte
LEFT JOIN ANIMAL_OUTS AS ani
ON cte.hour = HOUR(ani.DATETIME)
GROUP BY cte.hour
감사합니다. 새로운 구문 알아가요!!!
깔끔히 정리된 정보 공유 감사합니다!~
와 설명 감사합니다!
감사합니다