Điều này có thể đạt được bằng cách sử dụng distinct on()
và một định nghĩa sắp xếp tùy chỉnh cho loại_lợi_cấp:
select distinct on (merchant_id) *
from offer
order by merchant_id,
discount desc,
case when benefit_type = 'ALL' then 1 else 2 end;
Điều này thích chiết khấu cao hơn. Nếu hai khoản chiết khấu giống nhau, thì một loại lợi ích là ALL
được sử dụng như một yếu tố kết thúc.
Ví dụ trực tuyến: http://rextester.com/TFBP17217