如何计算雅典娜(Presto)的两个时间戳之间的间隔?

时间:2019-07-28 07:56:44

标签: sql aggregate presto amazon-athena

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

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

enter image description here

结果应该像 enter image description here

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用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;