sql >> Databasteknik >  >> RDS >> Oracle

Topp 2 erbjudanden med summan av alla erbjudanden

 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

Detta använder sig av rekursiva Cte's för att utföra din uppgift.



  1. Byt från SQLite till PostgreSQL i ett nytt Rails-projekt

  2. Tabellnamnsmönster kan inte vara NULL eller tomt i java

  3. 3 sätt att få schemat för en resultatuppsättning i SQL Server

  4. Uppdatera en tabell i Oracle om något fältvärde är null och fastställa att uppdateringen är framgångsrik