У меня есть запрос в BigQuery:
WITH
date_params AS(
SELECT
DATE_TRUNC(DATE_ADD(CURRENT_DATE(), INTERVAL -7 day), WEEK(MONDAY)) AS WeekStartDate,
DATE_TRUNC(DATE_ADD(CURRENT_DATE(), INTERVAL -1 day), WEEK(SUNDAY)) AS WeekEndDate,
date "2020-01-01" AS ReportStartDate,
),
finances AS (
SELECT
Amount,
CASE
WHEN DATE (t1.Created ) BETWEEN WeekStartDate AND WeekEndDate THEN "Weelky"
WHEN DATE (t1.Created ) BETWEEN ReportStartDate
AND WeekEndDate THEN "Cumulative"
END
AS ReportPeriod
FROM
Table_1 t1,
date_params p )
SELECT
SUM(Amount) AS `Amount`
FROM
finances
GROUP BY
ReportPeriod
Не могли бы вы объяснить, как сгруппировать результат Amount между двумя периодами времени: 1) за последнюю неделю и 2) с определенной даты (ReportStartDate), как я пытался сделать. Единственная проблема возникла в том, что оператор CASE для «Cumulative» включает даты в «Weelky», но мне нужно от ReportStartDate до последнего воскресенья, включая последнюю неделю.