【问题标题】:BigQuery, Sum by weekBigQuery,按周求和
【发布时间】:2020-07-26 15:44:27
【问题描述】:

我正在使用标准 SQL,并尝试按周添加产品使用的每周总和。

使用下面的代码,我可以在每一行中添加相应的星期和年份。我将如何按周对项目的总数求和并在列中输出,比如过去 8 周。

extract(week from Metrics_Date) as week, EXTRACT(YEAR FROM Metrics_Date) AS year

图片是我的原始数据,项目旁边是星期和年份:

这张图片是上述原始数据的进一步分析(将它们组合在一起)。这里是我想要添加列、current_week 和星期几的第一天,以及该周总数的总和。

任何帮助将不胜感激。

【问题讨论】:

  • 这能回答你的问题吗? How to SUM two fields within an SQL query
  • 在图片 2 中,我需要一个新列,例如,上周,在 Last1TotalRequests 旁边,它对图片 1 中的 message_count 进行求和,按 company_name、product_name 分组为最后一周
  • 为了进一步帮助您,我需要检查我是否理解正确,您首先要对每周分组的列进行求和,因此每个周数都会有一定的 SUM。然后,您只想显示基于当前周的上周总和。这是你想要的吗?

标签: google-bigquery dayofweek


【解决方案1】:

顺便说一句,您不需要extract(),您可以使用truncation DATE_TRUNC(your_date, WEEK),它会将其截断为一周,通常更容易。

另外,由于截断的结果是日期,因此您已经有了一周的第一天。

其余的我相信你已经弄清楚了,但以防万一:

SELECT DATE_TRUNC(your_date_field, WEEK) AS week, SUM(message_count) AS total_messages FROM your_table GROUP BY 1

【讨论】:

  • 感谢您告诉我有关 DATE_Trunc 的信息。我想我已经解决了,但将这个答案留给未来的用户。
猜你喜欢
  • 2020-09-16
  • 2017-06-08
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 2017-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多