Вы можете использовать таблицу календаря здесь:
WITH dates AS (
SELECT '2017-12-29' AS date_val UNION ALL
SELECT '2017-12-30' UNION ALL
SELECT '2017-12-31' UNION ALL
SELECT '2018-01-01'
-- and maybe other dates
)
SELECT
t2.name,
t1.date_val
FROM dates t1
INNER JOIN yourTable t2
ON t1.date_val BETWEEN t2.startDate AND t2.endDate
ORDER BY
t2.name,
t1.date_val;
Если ваша версия BigQuery не поддерживает CTE, вы можете просто встроить CTE в качестве подзапроса. То есть замените dates
на тело самого CTE.
На практике вам может потребоваться сгенерировать ряд дат (q.v. здесь ) или, возможно, сохранить выделенную таблицу календаря в вашей базе данных. Выше показано, как может выглядеть сам запрос.