Функция агрегации Oracle для выделения суммы

Предположим, у меня есть 2 таблицыT1 а такжеT2 следующее

T1:

bag_id bag_type capacity
------|--------|--------
  1       A       500
  2       A       300
  3       A       100
  4       B       200
  5       B       100

T2:

item_type item_amount
---------|-----------
   A         850
   B         300

Каждая запись в таблицеT1 представляет сумку и ее вместимость, здесь у меня есть 5 сумок. Я хочу написать SQL, который выделяет элементы в таблицеT2 в каждую сумку одинакового типа, т.е. результат должен быть таким

bag_id bag_type capacity allocated_amount
------|--------|--------|----------------
  1       A        500        500
  2       A        300        300
  3       A        100        50
  4       B        200        200
  5       B        100        100

Следовательно,Я нахожу какую-то функцию агрегирования, давайте назовем ееallocate(), который может произвести столбецallocated_amount как указано выше. У меня есть предположение, что, если существует, это может быть использовано так

select 
    t1.bag_id,
    t1.bag_type, 
    t1.capacity,
    allocate(t2.item_amount, t1.capacity) 
        over (partition by t1.bag_type order by t1.capacity desc) as allocatd_amount
from t1, t2
where t2.item_type = t1.bag_type

Мое текущее решение - использовать временную таблицу и цикл PL / SQL для расчета, но я надеюсь, что смогу сделать это с одним простым SQL.

Ответы на вопрос(3)

Ваш ответ на вопрос