Dans SQL Server 2012, vous utiliseriez simplement lag()
. Vous pouvez répliquer cela de différentes manières dans SQL Server 2008. Voici une méthode utilisant cross apply
:
select c.*
from content c cross apply
(select top 1 c2.*
from content c2
where c2.contentId = c.contentId and c2.UpdatedAt < c.UpdatedAt
order by c2.UpdatedAt desc
) cprev
where c.FileId <> cprev.FileId;