Dette kan opnås ved hjælp af distinct on()
og en brugerdefineret sorteringsdefinition for benefit_type:
select distinct on (merchant_id) *
from offer
order by merchant_id,
discount desc,
case when benefit_type = 'ALL' then 1 else 2 end;
Dette foretrækker højere rabat. Hvis to rabatter er ens, en benefit_type på ALL
bruges som tie-breaker.
Online eksempel:http://rextester.com/TFBP17217