`Выручка`>=(SELECT min(f1831) FROM (SELECT DATA_TABLE131.*, @counter := @counter +1 counter FROM (select @counter:=0) initvar, DATA_TABLE131 ORDER BY f1831 DESC) X where counter <= (20/100 * @counter))
(f1831 - выручка, DATA_TABLE131 - таблица клиентов)
Однако фильтр работает неточно. Вместо 20% первых клиентов выводит 23%. Как можно исправить данный код, чтобы считалось правильно?