许多年前,我对SQL非常熟悉,但显然已经太久了,我失去了自己的技能和知识。
我有许多表,每个表都用额外的元数据跟踪一个给定的事件。其中一个元数据是UTC格式的时间戳(2021-08-11 17:27:27.916007 UTC)。
现在我需要计算事件每分钟发生的次数。第1列,Col2 EventName,以协调世界时表示的时间戳
我正在尝试回忆我过去的知识,以及如何将其应用于BQ。任何帮助都是非常感谢的。
发布于 2021-08-20 08:47:29
如果我理解得很好,您可以将时间戳转换为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()得到除法后的小数。
如果在同一个表中有多种类型的事件,只需将事件的名称添加到select和group by中
发布于 2021-08-19 21:27:01
第一步是按事件列分组。则可以对时间戳事件进行计数。
Select Col2_EventName, count(Timestamp )
group by 1根据您的数据,必须进行更多的转换。例如,忽略时间戳中的秒,只保留完整的分钟,就像Javier Montón的答案中所做的那样。
https://stackoverflow.com/questions/68853468
复制相似问题