【问题标题】:Howe to count an event by minute in Big Query如何在 Bigquery 中按分钟计算事件
【发布时间】:2021-10-21 11:51:35
【问题描述】:

很多年前,我对 SQL 很了解,但显然已经很长时间了,我失去了技能和知识。

我有许多表,每个表都使用附加元数据跟踪给定事件。一个元数据是UTC格式的时间戳(2021-08-11 17:27:27.916007 UTC)。

现在我需要计算每分钟事件发生的次数。 第 1 列,第 2 列 事件名称,UTC 时间戳

我正在尝试回忆我过去的知识以及如何将其应用于 BQ。任何帮助表示赞赏。

【问题讨论】:

    标签: time google-bigquery utc


    【解决方案1】:

    如果我理解得很好,您可以将您的时间戳转换为minutes,然后按它进行分组。

    SELECT count(*) AS number_events, 
           FLOOR(UNIX_SECONDS(your_timestamp)/60) AS minute 
    FROM your_table
    GROUP BY FLOOR(UNIX_SECONDS(your_timestamp)/60)
    

    因此,它将您的时间戳转换为 unix_seconds,然后除以 60 得到分钟,floor() 在除法后跳过小数。

    如果您在同一个表中有多种类型的事件,只需将事件名称添加到selectgroup by

    【讨论】:

      【解决方案2】:

      第一步是按事件列分组。 然后就可以统计 Timestamp 事件了。

      Select Col2_EventName, count(Timestamp )
      group by 1
      

      根据您的数据,还需要进行一些转换。例如。忽略时间戳中的秒数,只保留完整的分钟数,正如 Javier Montón 的回答中所做的那样。

      【讨论】:

      • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
      猜你喜欢
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多