Вот запрос, который может выполнить работу для вашего варианта использования.
Логика заключается в использовании функции Presto sequence()
для генерации широкого диапазона дат (с 2000 по конец 2018 года вы можете адаптировать его по мере необходимости), который можно объединить с таблицей для сгенерировать вывод.
select dt.x, emp_num
from
( select x from unnest(sequence(date '2000-01-01', date '2018-01-31')) t(x) ) dt
inner join table1 ta on dt.x >= ta.start and dt.x <= ta.end
Однако, как прокомментировал JNevill, было бы более эффективно создавать таблицу календаря, а не генерировать ее на лету при каждом выполнении запроса.
Это должно быть просто как:
create table calendar as
select x from unnest(sequence(date '1970-01-01', date '2099-01-01')) t(x);
И тогда ваш запрос станет:
select dt.x, emp_num
from
calendar dt
inner join table1 ta on dt.x >= ta.start and dt.x <= ta.end
PS: из-за отсутствия DB Fiddles для Presto в дикой природе я не смог протестировать запросы (@PiotrFindeisen - если вы прочитаете это - было бы неплохо иметь скрипку Presto!).