Ниже для BigQuery Standard SQL
#standardSQL
SELECT start, duration,
REGEXP_EXTRACT(
REPEAT('Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,',CAST(duration/7+1 AS INT64)),
CONCAT(r'', start, r'(?:(?:,\w+){', CAST(duration - 1 AS STRING), '})')
) days_list
FROM `project.dataset.table`
вы можете протестировать / поиграть с ним, используя фиктивные данные из вашего вопроса, как показано ниже
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'Monday' start, 'Saturday' finish, 13 duration UNION ALL
SELECT 'Tuesday', 'Friday', 54 UNION ALL
SELECT 'Friday', 'Wednesday', 10
)
SELECT start, duration,
REGEXP_EXTRACT(
REPEAT('Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,', CAST(duration / 7 + 1 AS INT64) ),
CONCAT(r'', start, r'(?:(?:,\w+){', CAST(duration - 1 AS STRING), '})')
) days_list
FROM `project.dataset.table`
с результатом как
Row start duration days_list
1 Monday 13 Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
2 Tuesday 54 Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
3 Friday 10 Friday,Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday