declare @tab table
(
id int
,f int
,d datetime
)
insert @tab(id,f,d) values(1,2,'20090122')
insert @tab(id,f,d) values(2,1,'20090121')
insert @tab(id,f,d) values(3,2,'20090120')
insert @tab(id,f,d) values(2,2,'20090122')
insert @tab(id,f,d) values(1,2,'20090119')
select top 1 with ties
id,
f,
d
from @tab
order by row_number() OVER ( partition BY id,f ORDER BY d desc )
да будет так