Jurijus Zaksas
Искусственный Интеллект
(445630),
открыт
4 недели назад
... разложить что-то по категориям, чтобы СУММА некоторого параметра в этих категориях была более-менее одинаковой? Поясняю. У меня есть список таблиц и места, ими занимаемого (в байтах). Мне нужно эти таблицы распределить по 16-и ведрам таким образом, чтобы битов в каждом ведре было более-менее поровну. То есть если в первом ведре будет единственная огроменная таблица, а в последнем - целая куча маленьких, это ОК и то, что мне надо. Я заглядываюсь на функцию NTILE, но что-то не пойму, куда там впихнуть именно сумму. Еще есть идея посчитать сначала аккумулирующуюся сумму, а потом натравить на нее NTILE, но что-то голова плохо работает. Очень пригодился бы мне тут добрый дядя Андрей, но и от других участников приму любую помощь с благодарностью.
Вот этот NTILE всегда делит на одинаковое количество штук и плевать хотел на СumulativeSize. В общем, сейчас свою программку набросаю...
Александр
Просветленный
(21139)
Jurijus Zaksas, да, NTILE опирается на кол-во строк, а не на вес параметра. Если вам нужно сделать более-менее равномерное распределение, то тогда придется делать еще и столбец TotalSize и некое ранжирование СumulativeSize/TotalSize для определения номера корзины.
Поясняю.
У меня есть список таблиц и места, ими занимаемого (в байтах).
Мне нужно эти таблицы распределить по 16-и ведрам таким образом, чтобы битов в каждом ведре было более-менее поровну. То есть если в первом ведре будет единственная огроменная таблица, а в последнем - целая куча маленьких, это ОК и то, что мне надо. Я заглядываюсь на функцию NTILE, но что-то не пойму, куда там впихнуть именно сумму. Еще есть идея посчитать сначала аккумулирующуюся сумму, а потом натравить на нее NTILE, но что-то голова плохо работает. Очень пригодился бы мне тут добрый дядя Андрей, но и от других участников приму любую помощь с благодарностью.