我有一个数据库,其中数据已定期记录5分钟,表示已记录24小时,如下表所示。
Date and Time Value
2016-09-17 14:00:00 25.26
2016-09-17 14:05:00 24.29
2016-09-17 14:10:00 25.22
2016-09-17 14:20:00 25.10
2016-09-17 23:55:00 20.21
我希望使用SQL查询显示每1小时读数有可能缺少某些读数预期的输出应该是。
Date and Time Value
2016-09-17 14:00:00 25.26
2016-09-17 15:00:00 27.29
2016-09-17 16:00:00 28.12
2016-09-17 17:00:00 22.11
我有可能会遗漏一些阅读材料。像
Date and Time Value
2016-09-17 14:35:00 25.26
此读数可能缺失 请建议相同的SQL查询
答案 0 :(得分:2)
SELECT t1.DateCol,
t1.Value
FROM yourTable t1
INNER JOIN
(
SELECT MIN(DateCol) AS firstDate
FROM yourTable
GROUP BY FORMAT(DateCol, 'dd/MM/yyyy hh')
) t2
ON t1.DateCol = t2.firstDate
如果您想要每15分钟分组一次,可以尝试:
GROUP BY CONCAT(FORMAT(DateCol, 'dd/MM/yyyy hh'),
FLOOR(DATEPART(MINUTE, DateCol) / 15))