Jeg kender ikke ColdFusion, men jeg tror, jeg forstod logikken. Prioritet er aktuel> historie> anderledes. Det er ikke klart, hvilken række der er korrekt, når der er to current rækker eller kun different rækker, så jeg markerer række med minimum valid_from i et sådant tilfælde. Hvis du er ligeglad, kan du udelade denne parameter (fjern unit_valid_from fra row_number s order by klausul):
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