MySQL 显示范围的计数



类似的问题被问过,但没有解决方案对我有用。

我有一张桌子,上面有公寓的大小:

|  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

最新更新