Zapytanie SQL, aby znaleźć najnowszą grupę rekordów

Mam historię rekordów (wiele rekordów na aktualizację z dokładnie taką samą datą), które współdzieląIdString.

Chcę, aby zapytanie określało, które z tych rekordów są częścią najnowszej grupy aktualizacji.

To zapytanie pokaże mijeden z rekordów o ostatniej dacie aktualizacji, aledla każdej partycji potrzebuję wszystkich rekordów z tą maksymalną datą.

;with cte as(
select ROW_NUMBER() over (partition by IdString order by UpdateDate desc) as [rn], *
from MyTable
)
select  CASE WHEN (cte.rn = 1) THEN 0 ELSE 1 END [IsOld], *
from MyTable m
inner join cte on cte.RecordId= m.RecordId

Czy ktoś mógłby mi pomóc w znalezieniu odpowiedniego zapytania?

EDYCJA: Próbka

(IsOld is the desired calculated value)

IsOld RecordId  IdString  UpdateDate
1         1     ABC 2011-06-16 
1         2     ABC 2012-05-30 
1         3     ABC 2008-12-31 
0         4     ABC 2012-06-08 
1         5     ABC 2011-01-16 
0         6     ABC 2012-06-08 
1         7     ABC 2012-06-07 
1         8     XYZ 2001-01-16
1         9     XYZ 2013-01-30
0         10    XYZ 2001-01-31
1         11    XYZ 2013-06-01
1         12    XYZ 2001-05-04
0         13    XYZ 2013-01-30

questionAnswers(2)

yourAnswerToTheQuestion