【发布时间】:2020-11-02 06:29:07
【问题描述】:
我正在使用 bigquery 创建一个查询,该查询将计算每个 ID 的特定日期起 5 天内的数据总数。到目前为止,我设法获得了结果,其中结果返回了每天(第 1 天到第 5 天)的数据,这意味着结果中有 5 个日期。但是,我想要的实际上是只返回 1 个日期,这是最后一个日期,所以它就像 1 个日期,显示每个 ID 从该特定日期起过去 5 天的整体数据。
样本数据:
示例代码:
SELECT
ID,
Date,
SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS lang_EN,
SUM(CASE WHEN Language = 'SN' THEN 1 ELSE 0 END) AS lang_SN,
FROM (
SELECT
DATE(Timestamp) as Date ,
ID,
CASE
WHEN Language in ('EN', 'English') THEN 'EN'
WHEN Language in ('MY', 'Malay') THEN 'MY' ELSE Language
END AS Language,
FROM t
WHERE Smooch_User_ID IS NOT NULL AND DATE(Timestamp) between '2020-01-01' and '2020-01-31'
GROUP BY ID, Language, DATE(Timestamp)
)
GROUP BY ID,Date
样本输出:
到目前为止,查询返回从第 1 天到第 5 天的每个日期的数据。如何使它返回从第 1 天到第 5 天的整体数据,并仅返回第 5 天的日期列日期,如下所示(假设第 1 天是 2020-01-01,第 5 天是 2020-01-05)。
【问题讨论】:
-
你能分享你想要达到的期望输出的样本吗?
-
您应该展示您的初始输入数据以及所需的输出。你现在的问题在我看来是一个中间数据,无助于理解你的情况。见How to create a Minimal, Reproducible Example
标签: sql google-bigquery timestamp