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