Tôi không biết ColdFusion, nhưng tôi nghĩ rằng tôi đã hiểu logic. Ưu tiên là hiện tại> lịch sử> khác. Không rõ hàng nào là đúng khi có hai current
hàng hoặc chỉ different
hàng, vì vậy tôi đánh dấu hàng có valid_from
tối thiểu trong trường hợp như vậy. Nếu bạn không quan tâm Bạn có thể bỏ qua tham số này (xóa unit_valid_from
từ row_number
của order by
mệnh đề):
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