sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL - Vyberte řádek se složenou maximální hodnotou ze 2 sloupců

Toho lze dosáhnout pomocí distinct on() a vlastní definici řazení pro 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;

To preferuje vyšší slevu. Pokud jsou dvě slevy stejné, benefit_type ALL se používá jako nerozhodný výsledek.

Online příklad:http://rextester.com/TFBP17217




  1. Jak zobrazit aktuální nastavení příkazu Dot v SQLite

  2. Jak určit regex Ruby při použití Active Record v Rails?

  3. Výukový program ovládání Activex ListView-01

  4. Přesunout uzel ve vnořené sadě