Ниже для BigQuery Standard SQL
#standardSQL
SELECT
CONCAT('W', CAST(DIV(DATE_DIFF(t.date, start_date, DAY) + 7, 7) AS STRING)) `date`,
sku,
SUM(sales) sales
FROM `project.dataset.table` t JOIN (
SELECT sku, MIN(t.date) AS start_date
FROM `project.dataset.table` t
GROUP BY sku
) s USING(sku)
GROUP BY sku, `date`
Вы можете протестировать, поиграть с выше, используя примеры данных из вашего вопроса, как в примере ниже
#standardSQL
WITH `project.dataset.table` AS (
SELECT DATE '2019-02-23' `date`, '123' sku, 20 sales UNION ALL
SELECT '2019-02-24', '123', 33 UNION ALL
SELECT '2019-02-25', '123', 45 UNION ALL
SELECT '2019-02-20', '456', 15 UNION ALL
SELECT '2019-02-22', '456', 23
)
SELECT
CONCAT('W', CAST(DIV(DATE_DIFF(t.date, start_date, DAY) + 7, 7) AS STRING)) `date`,
sku,
SUM(sales) sales
FROM `project.dataset.table` t JOIN (
SELECT sku, MIN(t.date) AS start_date
FROM `project.dataset.table` t
GROUP BY sku
) s USING(sku)
GROUP BY sku, `date`
-- ORDER BY sku, `date`
с результатом
Row date sku sales
1 W1 123 98
2 W1 456 38