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

Топ 2 оферти със сбор от всички оферти

 with x as 
 (select row_number() over(partition by customer,make order by offer desc) rn,
  customer, make, zipcode, offer from tablename)
 , y as (select customer, make, zipcode, offer from x where rn <=2)
 , z as (select customer, make, zipcode, 
         case when rn = 1 then offer else 0 end as offer_1, 
         case when rn = 2 then offer else 0 end as offer_2 
         from y)
  select customer, make, zipcode, offer_1, offer_2, offer_1+offer_2 total_offer
  from z

Това прави използването на рекурсивни cte за изпълнение на вашата задача.



  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. Oracle Sql Check Constraint !=друга таблица

  3. Oracle PL/SQL – Колекции (вложени таблици)

  4. Съхранената процедура в Oracle дава грешка PLS-00428

  5. Как да използвам sql*plus в командния скрипт на Windows за управление на потока?