sql >> Databáze >  >> RDS >> Oracle

Top 2 nabídky se součtem všech nabídek

 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

To využívá rekurzivní CTE ke splnění vašeho úkolu.



  1. NULL prvky ztracené při odesílání výsledku unnest()

  2. Tabulka nemá primární klíč

  3. Kontrola informací o síti Oracle RAC a IP adresách

  4. Apache Cayenne / PostgreSQL:Chyba již u příliš mnoha klientů