【发布时间】:2020-05-15 04:07:02
【问题描述】:
My_table_data.
testdate plant value
2020-05-14 02:00:00.000 1 68
2020-05-14 01:00:00.000 3 115
2020-05-14 02:00:00.000 2 107
2020-05-14 03:00:00.000 2 102
2020-05-14 05:00:00.000 2 104
2020-05-14 06:00:00.000 2 111
2020-05-14 08:00:00.000 1 74
2020-05-14 08:00:00.000 2 114
2020-05-14 09:00:00.000 1 70
2020-05-14 09:00:00.000 2 114
2020-05-14 03:00:00.000 3 106
2020-05-14 03:00:00.000 3 102
2020-05-15 02:00:00.000 2 108
2020-05-14 05:00:00.000 1 74
2020-05-14 04:00:00.000 3 96
2020-05-14 04:00:00.000 3 97
2020-05-14 06:00:00.000 1 80
2020-05-14 03:00:00.000 1 77
2020-05-14 06:00:00.000 3 102
我是复杂 SQL 查询短语的新手。如何达到如下结果。 条件 1.时间戳最新数据(小时) 2. 每株植物单行。
WITH data AS(
SELECT testdate, plant, value, (DATEPART(HOUR,testdate))AS dH FROM My_table_data
WHERE testdate >= (SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120))
)
SELECT data.testdate, data.plant, data.value from data
WHERE data.dH= (SELECT MAX(data.dH) FROM data)
GROUP BY data.plant
ORDER BY data.plant DESC;
报错!!
testdate Plant value
2020-05-14 09:00:00.000 1 70
2020-05-14 09:00:00.000 2 114
2020-05-14 06:00:00.000 3 102
【问题讨论】:
标签: sql-server-2005