PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL - Изберете ред със съставна максимална стойност от 2 колони

Това може да се постигне с помощта на distinct on() и персонализирана дефиниция за сортиране за 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;

Това предпочита по-висока отстъпка. Ако две отстъпки са еднакви, benefit_type от ALL се използва като ключ за тайбрек.

Онлайн пример:http://rextester.com/TFBP17217




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да сравните 2 последователни стойности на ред в обект с набор от резултати с помощта на python

  2. Django + Psycopg2:InterfaceError:поддържа се само протокол 3

  3. Съхраняване на срещи в SQL база данни като Postgres за използване с java.time framework

  4. Рефакториране на външния ключ към полета

  5. В таблицата на PostgresQL, как да създадете колона с всички стойности в колона1, за която стойността на текущия ред в колона1 се появява в колона2?