SQL: как выбрать единственную запись для нескольких идентификатор на основе макс. даты и времени?

Я сказал бы что-то как Flash для хорошего соединения быстрых и codability.

6
задан Jonathan Leffler 20 October 2009 в 13:44
поделиться

3 ответа

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
11
ответ дан 8 December 2019 в 13:00
поделиться
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)
5
ответ дан 8 December 2019 в 13:00
поделиться

Это также должно делать то, что вы хотите:

SELECT ID, WindSpeed, [DateTime] 
FROM (
    SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY [DateTime] DESC) AS RowNumber,
        Id, WindSpeed, [DateTime]
    FROM MyTable
) T
WHERE RowNumber = 1
2
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: