No SQL Server 2012, você usaria apenas
lag()
. Você pode replicar isso de várias maneiras no SQL Server 2008. Aqui está um método usando 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;