Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

2 penawaran teratas dengan jumlah semua penawaran

 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

Ini menggunakan cte rekursif untuk menyelesaikan tugas Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan fungsi agregasi untuk memfilter catatan berdasarkan cap waktu MIN

  2. Akses ditolak saat menyetel DBMS_XDB.SETHTTPORT

  3. Pemicu tidak valid di Oracle

  4. Oracle Blob sebagai img src di halaman PHP

  5. Kutipan Ganda di Alias ​​Kolom Oracle