Pra*_*ant 6 sql join sql-server-2005 greatest-n-per-group
我有以下SQL表,
Id WindSpeed DateTime
--------------------------------------
1 1.1 2009-09-14 16:11:38.383
1 1.9 2009-09-15 16:11:38.383
1 2.0 2009-09-16 16:11:38.383
1 1.8 2009-09-17 16:11:38.383
1 1.7 2009-09-19 16:11:38.382
2 1.9 2009-09-19 16:11:38.383
1 1.6 2009-09-19 16:11:38.383
2 1.2 2009-09-20 16:11:38.383
Run Code Online (Sandbox Code Playgroud)
我想编写一个查询,它将从上表返回以下结果集:
Id WindSpeed DateTime
--------------------------------------
1 1.6 2009-09-19 16:11:38.383
2 1.2 2009-09-20 16:11:38.383
Run Code Online (Sandbox Code Playgroud)
以上reuslt包含最新的(基于该id的最新日期时间)单个条目.这意味着我有多个记录ID与日期时间.
我想得到所有id的最新单一条目.
Max*_*erl 11
SELECT a.Id, a.WindSpeed, a.DateTime
FROM YourTable AS a
INNER JOIN
(
SELECT ID, Max(DateTime) AS DateTime
FROM YourTable
GROUP BY ID
) AS b
ON a.ID = b.ID
AND a.DateTime = b.DateTime
Run Code Online (Sandbox Code Playgroud)
SELECT t1.Id, t1.WindSpeed, t1.DateTime
FROM table1 As t1
WHERE t1.DateTime = (SELECT Max(DateTime)
FROM table1 As t2
WHERE t2.ID = t1.ID)
Run Code Online (Sandbox Code Playgroud)