我已经看到很多文章讨论了如何使用DATEPARTS()来基于日期时间聚合数据,但我还没有发现任何专门针对UNIX时间讨论这一点的文章。我的目标是能够根据提供的初始和最终时间戳,按秒、分钟、小时或天聚合数据。举例来说:假设我的约会时间是:
tstart = datetime('2023-05-22 07:00:00','TimeZone','UTC');
tstop = datetime('2023-05-23 07:00:00','TimeZone','UTC');
字符串
这些转换为:
Tstart = "1684738800000000"
Tstop = "1684825200000000"
型
这是已经过去的微秒数。之所以转换为UNIX,是因为服务器端的数据集只有这种时间戳格式,而没有datetime列。我怎样才能做到这一点不同的agg类型,如秒,分钟,小时,和天和规模乘数的?(即2秒,7小时等),因此,如果我有微秒的数据频率,并且我在上面提供的时间表上将其转换为每3小时一次,我会得到如下内容:
Output
我还没有尝试过任何东西,因为我不知道从哪里开始,因为我以前没有使用过UNIX。
Azure数据结构我正在尝试对以下对象执行agg/calc:
Data的
1条答案
按热度按时间aiqt4smr1#
要按3小时间隔聚合表中的数据并计算每个间隔的
data1
和data2
的平均值,可以采用以下方法。SQL代码
字符串
第一个CTE(
cte1
)使用DATEADD
函数将Mytable1
表中的Unix时间戳转换为datetime值。第二个CTE(cte2
)使用DATEPART
函数计算每个datetime值的3小时间隔。最后一个SELECT语句按日期和间隔对数据进行分组,并计算每组的最小时间戳以及data1
和data2
的平均值。db-fiddle