Это дополнительный вопрос к Извлечение последней записи в каждой группе из базы данных - SQL Server 2005/2008
В ответах был предоставлен этот пример для извлечения последней записи длягруппа параметров (пример ниже извлекает последние обновления для каждого значения в имени компьютера):
select t.*
from t
where t.lastupdate = (select max(t2.lastupdate)
from t t2
where t2.computername = t.computername
);
В моем случае, однако, «lastupdate» не является уникальным (некоторые обновления поступают в виде пакетов и имеют одинаковое значение lastupdate,и если два обновления «computername» будут приходить в одном пакете, вы получите неуникальный вывод для «computername + lastupdate»).Предположим, у меня также есть поле "rowId", которое просто автоинкрементно.Снижение может заключаться в том, чтобы включить в запрос другой критерий для поля max ('rowId').
Примечание: хотя в этом примере используется специфичное для времени имя "lastupdate", фактические критерии выбора могут быть не связаны свремя вообще.
Поэтому я хотел бы спросить, каким будет самый производительный запрос , который выбирает последнюю запись в каждой группе на основе обоих «параметров, определяющих группу» (в случае выше,"имя_компьютера") и максимальный rowId?