Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

2 ưu đãi hàng đầu với tổng tất cả các ưu đãi

 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

Điều này sử dụng cte đệ quy để hoàn thành nhiệm vụ của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để nhân bản kết quả sql của tôi?

  2. Oracle:Sử dụng truy vấn con trong trình kích hoạt

  3. Java - JDBC executeUpdate () không hoạt động

  4. Dịch vụ cơ sở dữ liệu trên AWS và Nền tảng đám mây Oracle

  5. Toán tử Shift trong PL / SQL