#sql #sql-server #sql-server-2008 #tsql #greatest-n-per-group
#sql #sql-server #sql-server-2008 #tsql #наибольшее число пользователей на группу
Вопрос:
У меня есть таблица в SQL Server.
ID PID LASTMODIFIED REASON
1 1 01/01/2011 XYZ
2 1 04/01/2011 XYY
3 2 05/01/2011 ZZZ
4 2 03/01/2011 ABC
Я хочу выбрать строки на основе MAX (LASTMODIFIED) для каждого PID. Например, выбор должен возвращать следующее:
ID PID LASTMODIFIED REASON
2 1 04/01/2011 XYY
3 2 05/01/2011 ZZZ
Пожалуйста, помогите мне с инструкцией SQL. Спасибо.
Ответ №1:
SELECT A.ID, A.PID, A.LastModified, A.Reason
FROM MyTable AS A INNER JOIN (
SELECT PID, MAX(LastModified) AS MaxDate
FROM MyTable
GROUP BY PID) AS B ON A.PID = B.PID AND A.LastModified = B.MaxDate