Mayby something like this?SELECT UserID, EventTime, EventDoor, EventTypeFROM ( SELECT UserID, EventTime, EventDoor, EventType, ROW_NUMBER() OVER (PARTITION BY UserID, EventDoor ORDER BY EventTime DESC) AS RowNum FROM Events AS E ) AS TempWHERE RowNum = 1 AND EventDoor = 1028-- OR SELECT UserID, EventTime, EventDoor, EventTypeFROM ( SELECT UserID, EventTime, EventDoor, EventType, ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY EventTime DESC) AS RowNum FROM Events AS E WHERE EventDoor = 1028 ) AS TempWHERE RowNum = 1