sql >> データベース >  >> RDS >> Oracle

すべてのオファーの合計を含む上位2つのオファー

     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
    

    これは、再帰cteを利用してタスクを実行します。



    1. SQLサーバー2008で地理ポリゴンを検​​証する方法は?

    2. 存在しないものを選択してください

    3. ノードのsequelizeを使用してレコードを更新するにはどうすればよいですか?

    4. 2つの列に基づくランク