sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL - Välj rad med sammansatt maximalt värde från 2 kolumner

Detta kan uppnås med distinct on() och en anpassad sorteringsdefinition för 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;

Detta föredrar högre rabatt. Om två rabatter är lika, en förmånstyp av ALL används som tie-breaker.

Onlineexempel:http://rextester.com/TFBP17217




  1. SQLite JSON_INSERT()

  2. Hur ansluter man MySQL-databas med Python+SQLAlchemy på distans?

  3. hämtar filer från databasen genom deras sökväg i jsp

  4. Fatalt fel:Anrop till en medlemsfunktion prepare() på boolean in