Я использую функцию поиска, но я думаю, что нет никакого связанного вопроса с решением для моего вопроса (мои извинения, если я ошибаюсь).
Давайте представим, что у нас есть простая таблица в MySQL с этой очень простой схемой: (MATERIAL varchar (10) первичный ключ, QUANTITY smallint). И с такими строками, как: (A, 10), (B, 8), (C, 7), (D, 4), (E, 1), (F, 1), (G, 1). Таким образом, у нас есть 7 материалов с общим количеством 32 предметов.
То, что я хотел бы получить, это запрос SELECT, чтобы получить только 2 первых материала (упорядоченные по количеству), но НЕ потому, что я знаю, что хочу ровно 2, а потому, что я знаю, что я хочу N материалов, необходимых для получения 50% покрытия по количеству.
Итак, с материалом А я получаю 10/32, и этого недостаточно. С материалом B я получаю 18/32, и, поскольку это более 50%, этого достаточно.
В неправильном синтаксисе, просто чтобы быть более понятным, я бы хотел что-то вроде:
ВЫБРАТЬ материал ИЗ вкладки ЗАКАЗАТЬ по количеству DESC LIMIT 50% от количества;
У вас есть идеи, как я мог бы реализовать это с помощью одного запроса?