【发布时间】:2020-08-29 22:56:26
【问题描述】:
我在 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
您能否解释一下如何在两个时间段之间对结果金额进行分组:1)上周和 2)从某个日期(ReportStartDate)开始,就像我尝试做的那样。唯一的问题是“累积”的 CASE 语句包括“Weelky”中的日期,但我需要从 ReportStartDate 到上周日,包括上周。
【问题讨论】:
-
请正确格式化您的代码!
标签: sql group-by google-bigquery case-when