【发布时间】:2018-07-17 08:47:23
【问题描述】:
我正在尝试在 BigQuery 中对 Google Merchandise Store 公共数据集进行以下查询:
- 日期
- 不同用户的数量
- 过去 30 天不同用户数的运行总和
例如(为了简单起见,我在示例中使用了 3 天):
date distinct_users distinct_users_3days
15/07/2018 8 15
14/07/2018 2 12
13/07/2018 5 20
12/07/2018 5 15
11/07/2018 10 10
...
这是我当前获取前两列的 SQL 代码,但我不知道如何获取运行总和:
SELECT
date,
COUNT(DISTINCT(fullVisitorId)) as daily_active_user
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_2017*`
WHERE
_table_suffix BETWEEN "0101"
AND "0715"
GROUP BY
date
感谢任何帮助! :)
【问题讨论】:
-
两个答案都有相当概念性的问题!提示 - 检查使用 ROWS 之间的区别。并且范围超过。如果您在“解决”这个问题上遇到问题,请告诉我,以便我或其他人进一步提供帮助
-
嗨@Mikhail,去了解更多关于RANGE的信息。据我了解,“RANGE 子句将框架限制为包含其值在指定范围内的行,相对于当前值。”,这是否意味着我们应该使用 RANGE(..BETWEEN 29 PRECEDING AND CURRENT ROW) 代替?来源:sonra.io/2017/08/22/…
-
你很接近。但你仍然需要学习一点。提示 - 范围对不在行上的值进行操作。在您的示例中使用范围与行的重要性 - 如果您错过了任何一天,您将得到错误的结果,例如 31 天而不是 30 天,等等。
-
这些是为您提供的几个相关示例 - Count unique ids in a rolling time frame 和 aggregate QUERY - 3 month average per person for every month - 如果他们有帮助,请随时投票 :o)
标签: sql google-bigquery cumulative-sum