PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:seleziona la riga con il valore massimo composto da 2 colonne

Questo può essere ottenuto usando distinct on() e una definizione di ordinamento personalizzata per 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;

Questo preferisce uno sconto maggiore. Se due sconti sono uguali, un tipo_beneficio di ALL è usato come spareggio.

Esempio online:http://rextester.com/TFBP17217