Выборка данных в SQL
ID | Index_Group | Index_Left | Percent |
---|---|---|---|
1 | 0.235294 | 0.786379 | 1 |
2 | 0.3157 | 0.704742 | 0.333333 |
3 | 0.384615 | 1.829067 | 0.6 |
5 | 0.25 | 1.92618 | 1 |
7 | 0.66666666 | 12.776826 | 1 |
Есть таблица с группами. Так же есть функция, в которую подаются 2 значения для выборки (по 3 и 4 колонке). По заданию выбирается группа, отвечающая последовательно следующим критериям:
- Максимальное значение по Index_Group
- Index_Left не больше заданного пользователем. В случае, если для максимального значения из 1го пункта Index_Left превышает заданный пользователем, брать следующую по Index_Group группу.
- Percent не более заданного пользователем. В случае, если для выбранной по предыдущим пунктам группы процент превышает установленный пользователем, берется следующая по индексу(Index_Group) группа, которая удовлетворяет так же 2му критерию.
Вот такая вот выборка... Сам сделал просто через WHERE Index_Left <= x AND Index_Left <= y
Ну и потом сортировка по индекс_груп и LIMIT 1. Для x = 0.7 и y = 3 получаю ID группы 3, но по чек листу должна выбраться 2я группа. Вообще странное условия из 3х последовательных критериев, что они должны выполняться как бы последовательно, в моем "решении" же будто наоборот снизу вверх.
Источник: Stack Overflow на русском