Не познавам ColdFusion, но мисля, че разбрах логиката. Приоритетът е текущ> история> различен. Не е ясно кой ред е правилен, когато има два current
редове или само different
редове, така че маркирам ред с минимум valid_from
в такъв случай. Ако не ви интересува, можете да пропуснете този параметър (премахнете unit_valid_from
от row_number
order by
на клауза):
select units.*,
case when 1 =
row_number() over (
partition by org_id
order by case origin when 'current' then 1 when 'history' then 2 else 3 end,
unit_valid_from ) then 1 else 0 end as is_correct_version
from units