Я знаю, что эта тема немного устарела, но для всех, кто ищет такое же решение, я думаю, будет полезно узнать, что есть хорошее решение для этой проблемы.
Пожалуйста, смотрите оригинальную ссылку здесь
Для тех, кто не хочет нажимать на ссылку, я скопировал и вставил код ниже.Опять же, кредит идет на оригинального издателя
Ниже приведен SQL для SQL Server 2000, чтобы выбрать последнюю версию группировки записей по одному столбцу.
SELECT *
FROM (
SELECT *, (
SELECT COUNT(*)
FROM MyTable AS counter
WHERE counter.PartitionByColumn = MyTable.PartitionByColumn
AND counter.OrderByColumn >= MyTable.OrderByColumn
) AS rowNumber
FROM MyTable
) AS r1
WHERE r1.rowNumber = 1
Тот же код в SQL Server 2005 будет выглядеть следующим образом:
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY PartitionByColumn
ORDER BY OrderByColumn DESC) AS rowNumber FROM MyTable) AS rw1
WHERE rw1.rowNumber = 1