У меня есть таблица SQL Server, которая имеет данные в формате:
Timestamp Name Price
2018-01-02 Name1 0.10
2018-01-03 Name1 0.20
2018-01-04 Name1 0.30
2018-01-02 Name2 0.40
2018-01-03 Name2 0.50
2018-01-04 Name2 0.60
2018-01-02 Name3 0.70
2018-01-03 Name3 0.80
2018-01-05 Name3 0.90
И я пытаюсь написать запрос на выборку, который возвращает самый последний (Timestamp
) для каждого уникального Name
. Таким образом, для приведенного выше примера данных запрос должен вернуть:
Timestamp Name Price
2018-01-04 Name1 0.30
2018-01-04 Name2 0.60
2018-01-05 Name3 0.90
Я бы подозревал, что запрос будет выглядеть примерно так:
SELECT TOP 1 * FROM mytable ORDER BY Timestamp DESC GROUP BY Name
однако, здесь есть синтаксическая ошибка.
Кто-нибудь знает, возможен ли такой запрос? Как получить самые последние строки (Timestamp
) для каждого уникального Name
?
Я использую Microsoft Azure SQL, если это имеет значение.