您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Bigquery SQL用于滑动窗口聚合

Bigquery SQL用于滑动窗口聚合

这个怎么样:

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的用户并对其进行计数。

SQLServer 2022/1/1 18:49:34 有417人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶