1) 메모리상에 가상의 테이블을 저장
2) 재귀커리를 이용해 실제로 테이블을 만들거나 데이터를 저장하지 않아도 가상 테이블 생성 가능
with recursive 테이블명 as (select 초기값 as 컬럼별명1 union all select 컬럼별명1 계산식 from 테이블명 where 제어문)
with recursive time as
(select 0 as hour union all select hour+1 from time where hour<23)
select hour, count(animal_id) count
from time
left outer join animal_outs on (hour = date_format(datetime, '%H') )
group by hour;