질문에서 언급했듯이 시작일과 종료일을 사용하여 캘린더 테이블이나보기를 만드는 문제에 대한 해결책을 찾았으니 지금 대답하고 있습니다.
CREATE table mytest.calendar
(
date DATE primary key
);
경계 날짜를 캘린더 테이블 (원하는 테이블의 최소 및 최대 날짜)에 삽입하십시오.
Insert into mytest.calendar (select min(date) from mytest.benchmarks);
Insert into mytest.calendar (select max(date) from mytest.benchmarks);
이제 생성하는 중간 날짜는 다음을 수행하십시오
SELECT CAST(slice_time AS DATE) date
FROM mytest.calendar mtc
TIMESERIES slice_time as '1 day'
OVER (ORDER BY CAST(mtc.date as TIMESTAMP));
당신은 사용할 수를 그 자체의 테이블로 :
SELECT date from
(SELECT CAST(slice_time AS DATE) date
FROM mytest.calendar mtc
TIMESERIES slice_time as '1 day'
OVER (ORDER BY CAST(mtc.date as TIMESTAMP))) calendar
where mytest.isBusinessDay(date) = 't';
SELECT date
FROM
(SELECT date
FROM
(SELECT CAST(slice_time AS DATE) date
FROM mytest.calendar mtc
TIMESERIES slice_time as '1 day'
OVER (ORDER BY CAST(mtc.date as TIMESTAMP))
) calendar
WHERE mytest.isBusinessDay(date) = 't') calendar;
내가 처음부터 날짜의 내 목록을 가지고 (벤치 마크 표의 min(date)
)에서 종료일 (max(date)
)