【发布时间】:2020-04-30 23:06:04
【问题描述】:
我将传感器读数存储在一个表格中,数据是仪表读数:
CaptureDate SensorID Value
2020-01-11 14:15:33.350 121 23908,0000
2020-01-11 14:00:33.300 123 23161,0000
2020-01-11 14:00:33.240 121 23901,0000
2020-01-11 13:45:33.137 123 23154,0000
2020-01-11 13:45:33.073 121 23894,0000
2020-01-11 13:30:32.927 123 23147,0000
我需要使用 SQL 来获取按 SensorID 过滤的一个月的每日总计,以获得类似于以下内容:
Date SensorID Value
2020-01-10 121 319
2020-01-11 121 249
2020-01-12 121 289
2020-01-13 121 263
2020-01-14 121 314
2020-01-15 121 248
我已尝试获取按天分组的最小值和最大值,但无法获取计数器的差值以获取净值;
SELECT *
FROM Records
WHERE CaptureDate in
(
SELECT min(CaptureDate)
FROM Records
WHERE SensorID = 124
AND convert(date, CaptureDate) >= '2020-01-01'
GROUP BY convert(date, CaptureDate)
) OR CaptureDate IN (
SELECT Max(CaptureDate)
FROM Records
WHERE SensorID = 124
AND convert(date, CaptureDate) >= '2020-01-01'
GROUP BY convert(date, CaptureDate)
) ORDER BY CaptureDate
然后返回:
CaptureDate SensorID Value
2020-01-08 14:20:39.627 121 23601.0000
2020-01-08 17:50:39.843 121 23678.0000
2020-01-09 08:50:19.473 121 23678.0000
2020-01-09 18:05:20.300 121 23707.0000
2020-01-10 08:46:06.903 121 23707.0000
2020-01-10 18:15:20.007 121 23796.0000
【问题讨论】:
-
“每日总计”是什么意思?您是否在寻找每天的平均值?
-
您每天需要每个传感器的最小值和最大值吗?以及它们之间的区别?有点疑惑,这种情况下249是怎么得到的:2020-01-11 121 249
标签: sql sql-server tsql sql-server-2012