Ini dapat dicapai dengan menggunakan distinct on()
dan definisi pengurutan khusus untuk tipe_manfaat:
select distinct on (merchant_id) *
from offer
order by merchant_id,
discount desc,
case when benefit_type = 'ALL' then 1 else 2 end;
Ini lebih memilih diskon yang lebih tinggi. Jika dua diskon sama, sebuah benefit_type dari ALL
digunakan sebagai pemutus ikatan.
Contoh online:http://rextester.com/TFBP17217