我有许多将数据发送到我的Amazon Athena服务器的IOT设备,我创建了一个表来存储数据,该表包含2列:LocalTime指示IOT设备捕获其状态的时间,ServerTime指示数据的时间到达服务器(有时物联网设备没有网络连接)
我想在上周的一段时间内以小时为单位(例如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;