gpt4 book ai didi

sql - 如何使用 Presto 将时间列分组为 5 秒间隔并计算行数?

转载 作者:行者123 更新时间:2023-12-05 00:49:00 25 4
gpt4 key购买 nike

我正在使用 Presto 和 Zeppelin。有很多原始数据。我必须总结这些数据。

我想每 5 秒分组一次。

serviceType        logType     date
------------------------------------------------------
service1 log1 2017-10-24 23:00:23.206
service1 log1 2017-10-24 23:00:23.207
service1 log1 2017-10-24 23:00:25.206
service2 log1 2017-10-24 23:00:24.206
service1 log2 2017-10-24 23:00:27.206
service1 log2 2017-10-24 23:00:29.302

然后是结果

serviceType        logType     date                       cnt
--------------------------------------------------------------
service1 log1 2017-10-24 23:00:20 2
service2 log1 2017-10-24 23:00:20 1
service1 log1 2017-10-24 23:00:25 1
service1 log2 2017-10-24 23:00:25 2

首先,我必须将存储的数据迁移到新表。

其次,我必须对数据进行分组并实时保存到新表中。

sql脚本很难写。

请帮帮我。

我必须使用 python 解释器吗?

最佳答案

你可以

  1. date_trunc
  2. 丢弃 timestamp 的毫秒部分
  3. 您可以使用 ts - interval '1' second * (second(ts) % 5)
  4. 将没有毫秒部分的 timestamp 舍入到 5 秒

将这些放在一起的示例:

presto> SELECT ts_rounded, count(*)
-> FROM (
-> SELECT date_trunc('second', ts) - interval '1' second * (second(ts) % 5) AS ts_rounded
-> FROM (VALUES timestamp '2017-10-24 23:01:20.206',
-> timestamp '2017-10-24 23:01:23.206',
-> timestamp '2017-10-24 23:01:23.207',
-> timestamp '2017-10-24 23:01:26.206') AS t(ts)
-> )
-> GROUP BY ts_rounded ORDER BY ts_rounded;
ts_rounded | _col1
-------------------------+-------
2017-10-24 23:01:20.000 | 3
2017-10-24 23:01:25.000 | 1
(2 rows)

关于sql - 如何使用 Presto 将时间列分组为 5 秒间隔并计算行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com