PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL - Sélectionnez une ligne avec une valeur maximale composite à partir de 2 colonnes

Ceci peut être réalisé en utilisant distinct on() et une définition de tri personnalisé pour le 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;

Cela préfère une remise plus élevée. Si deux remises sont identiques, un Benefit_type de ALL est utilisé comme condition de départage.

Exemple en ligne :http://rextester.com/TFBP17217