Will it help
DECLARE @T TABLE(ID INT,Time_Stamp DATETIME,Dose INT, Drug_Id INT) INSERT INTO @T VALUES (1,'2012-10-04 09:10:54',05,2), (1,'2012-10-04 09:12:34', 15,2), (1,'2012-10-04 09:15:12',20,2), (1,'2012-10-04 09:35:32',25,2), (1,'2012-10-04 09:37:34',25,2), (1,'2012-10-04 09:39:24',25,2), (1,'2012-10-04 09:42:16',35,2), (1,'2012-10-04 09:43:07',35,2) ;WITH CTE AS( SELECT *, Rn = ROW_NUMBER()OVER(PARTITION BY Dose ORDER BY Time_Stamp DESC) FROM @T) SELECT TOP 5 ID,Time_Stamp,Dose,Drug_Id FROM CTE WHERE Rn = 1 ORDER BY Dose DESC

source share