【问题标题】:How to calculate gap between 2 time stamps in Athena (Presto)?如何计算雅典娜(Presto)中2个时间戳之间的差距?
【发布时间】:2023-03-06 01:02:01
【问题描述】:

我有许多 IOT 设备将数据发送到我的 Amazon Athena 服务器,我创建了一个表来存储数据,该表包含 2 列:LocalTime 表示 IOT 设备捕获其状态的时间,ServerTime 表示数据的时间到达服务器(有时物联网设备没有网络连接)

我想计算上周一段时间内的“间隔”(比如说 1 小时),以便了解到达的数据的偏差,例如:

结果应该是这样的

谢谢

【问题讨论】:

    标签: sql aggregate presto amazon-athena


    【解决方案1】:

    你可以使用date_diff():

    select date_diff(hour, servertime, servertime) as hours,
           count(*)
    from t
    group by date_diff(hour, servertime, servertime)
    order by hours;
    

    这不会返回 0 值。为此,可以使用left join

    select v.hours, count(*)
    from (values (0), (1), (2), (3)) v(hours) left join
         t
         on hours = date_diff(hour, servertime, servertime)
    group by v.hours
    order by hours;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2020-11-10
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      相关资源
      最近更新 更多