Имеется таблица `table` с полями `id`, `value`, оба integer - `id` - unsigned primary key, autoincrement, `value` - unsingned В таблице имеется N записей, с различными значениями `value` Задано число M Из таблицы нужно выбрать максимальное количество записей но так, чтобы сумма значений поля `value` выбранных записей не превышала M Как такое реализовать?
оу... т.е. существует в таблице такая последовательность строк, при которой будет не максимальное количество записией, но уже достигнут предел суммы? или просто подряд выбирать строки пока не дойдем до предела суммы?
Эээ.. Местные гуру мускуль не знают? [sql]ALTER TABLE `aa` ORDER BY `value`; SET @a=0; SELECT (@a:=@a+`value`) as `sv`,`id`,`value` FROM `aa` WHERE @a<100 HAVING `sv`<100[/sql] Выберет максимальное кол-во строк сумма `value` которых меньше 100. Причем запрос оптимизированный (на тестовой базе в 10000 записей - запрос занял 0.0009 сек.). ЗЫ А гроуп тут вообще не в кассу.