Вы всегда определяете категории, поэтому мне кажется, что это должно быть table
:
категории (id, диапазон)
и insert
ваши диапазоны в этом table
. Когда вы закончите с этим, решение будет таким же простым, как select
ing from
categories
left join
с другими table
, при условии, что value
соответствует указанному вами range
, Для тех групп, у которых нет значений, результат будет null
для count
, поэтому вам нужно будет использовать ifnull
, чтобы убедиться, что оно равно 0, если в группе нет записи.
Я не очень хорошо разбираюсь в SqLite, но в других СУБД вы можете добавить varchar
к запросу, здесь varchar
будет оценкой range
, который вы сохранили в каждой категории, но если это в SqLite это не опция, тогда вы можете написать stored function
, который будет сравнивать, основываясь на возможных значениях range
. Это также не должно быть очень сложным, но если вы можете каким-то образом оценить строку range
, то она должна быть предпочтительной (но только если исключена возможность какой-либо инъекции в диапазоны, но это другая тема).