Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Najlepsze 2 oferty z sumą wszystkich ofert

 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 wykorzystuje rekurencyjne cte do wykonania zadania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić właściwości połączenia (w tym synonimy)

  2. Czy można tworzyć typy obiektów Oracle Database w PL/SQL?

  3. Rekurencja w Oracle

  4. Jak sprawić, by to_number ignorowało wartości nieliczbowe?

  5. Błąd podczas wstawiania danych zawierających pojedyncze cudzysłowy