Bigquery SQL用于滑动窗口聚合

普拉特

嗨,我有一张看起来像这样的桌子

Date         Customer   Pageviews
2014/03/01   abc          5
2014/03/02   xyz          8
2014/03/03   abc          6

我想要按周分组的页面视图聚合,但显示过去30天的聚合-(每周滑动窗口聚合,窗口大小为30天)

我正在使用Google bigquery

编辑:戈登-对您的“客户”发表评论,实际上我需要的是稍微复杂一点的,这就是为什么我在上表中包括客户的原因。我希望获得每周30天的浏览量> n的客户数量。像这样的东西

Date        Customers>10 pageviews in 30day window
2014/02/01  10
2014/02/08  5
2014/02/15  6
2014/02/22  15

然而,为了简单起见,如果我能够获得页面浏览量的滑动窗口汇总而完全忽略客户,我将按我的方式工作。像这样的东西

Date        count of pageviews in 30day window
2014/02/01  50
2014/02/08  55
2014/02/15  65
2014/02/22  75
费利佩·霍法

这个怎么样:

SELECT changes + changes1 + changes2 + changes3 changes28days, login, USEC_TO_TIMESTAMP(week)
FROM (
  SELECT changes,
         LAG(changes, 1) OVER (PARTITION BY login ORDER BY week) changes1,
         LAG(changes, 2) OVER (PARTITION BY login ORDER BY week) changes2,
         LAG(changes, 3) OVER (PARTITION BY login ORDER BY week) changes3,
         login,
         week
  FROM (
    SELECT SUM(payload_pull_request_changed_files) changes, 
           UTC_USEC_TO_WEEK(created_at, 1) week,
           actor_attributes_login login,
    FROM [publicdata:samples.github_timeline]
    WHERE payload_pull_request_changed_files > 0
    GROUP BY week, login
))
HAVING changes28days > 0

对于每个用户,它计算他们每周提交了多少更改。然后使用LAG()我们可以窥视下一行,他们在-1,-2和-3周提交了多少更改。然后,我们只需将这4周相加即可查看过去28天提交了多少更改。

现在,您可以将所有内容包装在新查询中,以过滤具有> X的用户并对其进行计数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

适用于28天滑动窗口聚合的BigQuery SQL(无需编写28行SQL)

来自分类Dev

Google BigQuery Standard SQL - 销售滑动窗口

来自分类Dev

SQL滑动窗口聚合(不使用窗口功能)

来自分类Dev

Google BigQuery SQL,用于汇总各个列

来自分类Dev

Google BigQuery SQL语句

来自分类Dev

在BigQuery SQL中使用IF

来自分类Dev

Google BigQuery SQL语句

来自分类Dev

转储从 BigQuery 到 SQL Server、Dataflow 与 Airflow 的聚合

来自分类Dev

不允许聚合聚合 Bigquery

来自分类Dev

用于拍摄图的 Bigquery GIS

来自分类Dev

BigQuery的标准SQL的表格范围

来自分类Dev

在SQL BigQuery中寻找X

来自分类Dev

使用Python的BigQuery动态SQL

来自分类Dev

bigquery sql中超出的资源

来自分类Dev

Bigquery SQL MAX()文字值

来自分类Dev

BigQuery:使用标准 sql 查询

来自分类Dev

BigQuery中的交叉联接后的行聚合

来自分类Dev

Google BigQuery-在Google BigQuery SQL中模拟熊猫removeDuplicates()

来自分类Dev

Google BigQuery-在Google BigQuery SQL中模拟熊猫removeDuplicates()

来自分类Dev

如何将聚合函数应用于Google BigQuery中从JSON提取的数据?

来自分类Dev

重用BigQuery窗口函数分区

来自分类Dev

Bigquery用于曲线形状匹配

来自分类Dev

bigquery java api用于表属性

来自分类Dev

使用聚合和条件进行查询,无需连接(Bigquery 标准 sql)

来自分类Dev

BigQuery 和标准 SQL:聚合数组中的每个 distnict 字段

来自分类Dev

BigQuery-计算滑动时间范围内的事件数

来自分类Dev

BigQuery标准SQL中的REGEXP_MATCH

来自分类Dev

标准SQL中的BigQuery Join数组

来自分类Dev

BigQuery SQL:按事件顺序过滤