Đây là mã chung để nhóm theo phạm vi vì việc thực hiện một câu lệnh trường hợp khá phức tạp.
Có thể sử dụng chức năng 'sàn' để tìm phần dưới cùng của phạm vi (không phải 'vòng' như Bohemian đã sử dụng) và thêm số tiền (19 trong ví dụ bên dưới) để tìm phần trên cùng của phạm vi. Hãy nhớ không chồng chéo phần dưới và phần trên của dãy!
mysql> create table new_table (user_number int, diff int);
Query OK, 0 rows affected (0.14 sec)
mysql> insert into new_table values (2, 0), (1, 28), (2, 32), (1, 40), (1, 53),
(1, 59), (1, 101), (1, 105), (2, 108), (2, 129), (2, 130), (1, 144);
Query OK, 12 rows affected (0.01 sec)
Records: 12 Duplicates: 0 Warnings: 0
mysql> select concat(21*floor(diff/21), '-', 21*floor(diff/21) + 20) as `range`,
count(*) as `number of users` from new_table group by 1 order by diff;
+---------+-----------------+
| range | number of users |
+---------+-----------------+
| 0-20 | 1 |
| 21-41 | 3 |
| 42-62 | 2 |
| 84-104 | 1 |
| 105-125 | 2 |
| 126-146 | 3 |
+---------+-----------------+
6 rows in set (0.01 sec)