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

Oracle agregační funkce pro přidělení částky

Hledáte kumulativní součet. Něco takového:

select t1.*,
       (case when cumecap <= t2.item_amount 
             then t1.capacity
             when cumecap - t1.capacity <= t2.item_amount
             then t2.item_amount - (cumecap - t1.capacity)
             else 0
        end) as allocated_capacity
from (select t1.*,
             sum(t1.capacity) over (partition by bag_type order by bag_id) as cumecap
      from t1
     ) t1 join
     t2
     on t1.bag_type = t2.item_type;


  1. Změna vývojové databáze Django z výchozí SQLite na PostgreSQL

  2. MySQL Delete s Group By

  3. Odstranění duplicitních řádků v Postgresu

  4. Jak získat nadřazenou tabulku, referenční tabulku, název omezení cizího klíče a sloupce v SQL Server - SQL Server / Výukový program TSQL, část 71