Группировка по интервалам

Я не знаю, применимо ли это sql-query к mySql, в любом случае в sql-select SQL Server я думаю, что вы sql-query можете «просто» использовать sql-select group by как в списке выбора, так mysql-server и в группе по списку.

Что-то mysqlclient вроде:

select 
    CASE 
        WHEN id <= 20 THEN 'lessthan20' 
        WHEN id >  20 and id <= 30 THEN '20and30' ELSE 'morethan30' END,
    count(*) 
from Profiles 
where 1=1 
group by 
    CASE 
        WHEN id <= 20 THEN 'lessthan20' 
        WHEN id >  20 and id <= 30 THEN '20and30' ELSE 'morethan30' END

возвращает что-то вроде

 column1     column2    
 ----------  ---------- 
 20and30     3          
 lessthan20  3          
 morethan30  13         

sql

mysql

2021-12-25T22:31:54+00:00