WITH MostRecentRows AS( SELECT ID, Name, Data, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY TimeStamp DESC) AS 'RowNumber' FROM MySchema.MyTable) SELECT * FROM MostRecentRows WHERE RowNumber = 1
SELECT ID, Name, Timestamp, DataFROM DataTable INNER JOIN ( SELECT ID, MAX(Timestamp) Timestamp FROM DataTable GROUP BY ID ) latest ON DataTable.ID = Latest.ID AND DataTable.Timestamp = Latest.Timestamp