Saya tidak tahu ColdFusion, tapi saya pikir saya mengerti logikanya. Prioritas saat ini> sejarah> berbeda. Tidak jelas baris mana yang benar ketika ada dua current
baris atau hanya different
baris, jadi saya menandai baris dengan minimum valid_from
dalam kasus seperti itu. Jika Anda tidak peduli Anda dapat menghilangkan parameter ini (hapus unit_valid_from
dari row_number
order by
klausa):
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