ColdFusion neznám, ale myslím, že jsem pochopil logiku. Priorita je aktuální> historie> jiná. Není jasné, který řádek je správný, když existují dva current
řádky nebo pouze different
řádky, takže řádek označím minimem valid_from
v takovém případě. Pokud je vám to jedno, můžete tento parametr vynechat (odstraňte unit_valid_from
z row_number
order by
klauzule):
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