У меня есть таблица item
и таблица container
, которая представляет хранилище элемента (в основном родительский элемент - контейнер, а элемент - дочерний элемент)
item --------------------------
item_id | item_type | item_name | container_id
container ---------------------
container_id | container_type
Я могу рассчитать количество предметов в каждом контейнере, как это
select container_id, count(item_id) from container
join item on item.container_id = container.container_id
group by container_id
Предполагая, что у меня есть результаты, подобные этому
container_1 | 100
container_2 | 1700
container_3 | 200
container_4 | 1000
container_5 | 2500
Я хочу переместить все предметы из одного контейнера в другой, чтобы создать контейнеры, в которых количество предметов не более 2500, и удалить другие контейнеры
По сути, конечный результат, которого я хочу достичь, - это получить
-- containers 2, 3 are removed
container_1 2000 -- it can container_2, doesn't matter
container_4 1000
container_5 2500
Как добиться этого в SQL?