Não conheço o ColdFusion, mas acho que entendi a lógica. A prioridade é atual> histórico> diferente. Não está claro qual linha está correta quando há dois
current
linhas ou apenas different
linhas, então eu marco a linha com o mínimo valid_from
em tal caso. Se não se importar Poderáomitir este parâmetro (remover unit_valid_from
de row_number
's order by
cláusula):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