类似的问题被问过,但没有解决方案对我有用。
我有一张桌子,上面有公寓的大小:
| size |
----------
10
15
23
54
9
16
32
我希望能够建立一个列表,其中包含每个大小范围内的公寓数量,例如:
| range | quantity |
--------------------
0-9 | 1
10-19 | 3
20-29 | 1
30-39 | 1
40-49 | 0
50-59 | 1
在 MySQL 中执行此操作最干净的方法是什么?
这不会显示空值,但会拆分其余值:
SELECT
CONCAT(FLOOR(size/10)*10, "-", (FLOOR(size/10)*10 + 10)) AS "Range",
COUNT(*) AS "Quantity"
FROM test
GROUP BY 1
ORDER BY 1;
改编自这里: https://flylib.com/books/en/2.305.1/categorizing_non_categorical_data.html
结果:
Range Quantity
0-10 1
10-20 3
20-30 1
30-40 1
50-60 1