Ниже для BigQuery Standard SQL
#standardSQL
SELECT id, letter, day
FROM `project.dataset.table`,
UNNEST(SPLIT(list)) letter,
UNNEST(GENERATE_DATE_ARRAY('2020-01-01', CURRENT_DATE(), INTERVAL 1 DAY)) day
Вы можете протестировать, поиграть с выше, используя фиктивные данные, основанные на примере из вашего вопроса, как в примере ниже
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, 'A,B' list UNION ALL
SELECT 2, 'C,D,E'
)
SELECT id, letter, day
FROM `project.dataset.table`,
UNNEST(SPLIT(list)) letter,
UNNEST(GENERATE_DATE_ARRAY('2020-01-01', CURRENT_DATE(), INTERVAL 1 DAY)) day
-- ORDER BY day, id, letter
с результатом как ниже
Row id letter day
1 1 A 2020-01-01
2 1 B 2020-01-01
3 2 C 2020-01-01
4 2 D 2020-01-01
5 2 E 2020-01-01
6 1 A 2020-01-02
7 1 B 2020-01-02
8 2 C 2020-01-02
. . .
143 2 C 2020-01-29
144 2 D 2020-01-29
145 2 E 2020-01-29