Ich kenne ColdFusion nicht, aber ich glaube, ich habe die Logik verstanden. Priorität ist aktuell> Historie> anders. Es ist nicht klar, welche Zeile richtig ist, wenn es zwei current
gibt Zeilen oder nur different
Zeilen, also markiere ich die Zeile mit mindestens valid_from
in diesem Fall. Wenn es Ihnen egal ist, können Sie diesen Parameter weglassen (entfernen Sie unit_valid_from
von row_number
's order by
Klausel):
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