如何解决按移位的DATETIME字段分组,按ID分组PIVOT
我正在使用带模式的表(简化):
CREATE TABLE [Test]
(
CaptureTime DATETIME,SnapShotValue INT,Id INT
);
具有以下30分钟的数据:
我想计算每个HH:00小时数据的平均值,取HH:30和HH + 1:00值并将其PIVOT。对于上面的测试数据:
我要开始here,如何将值HH:00的时间分组?数据取值HH:30和HH + 1:00以及Pivot?谢谢!
解决方法
如果我正确地跟随了您,则可以将捕获时间偏移30分钟,然后删除这些分钟,最后进行条件聚合:
select dateadd(minute,- datepart(minute,v.capturetime),v.capturetime) capture_time,avg(case when id = 1 then 1.0 * snapshotvalue end) avg1,avg(case when id = 2 then 1.0 * snapshotvalue end) avg2
from test t
cross apply (values (dateadd(minute,- 30,capturetime))) v(capturetime)
group by dateadd(minute,v.capturetime)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。