MYSQL 计数结果的自定义排序顺序?
Custom Sort Order for MYSQL Count Results?
我正在尝试就使用 google 表格收集的一些数据编写报告。每个人都被问及衣橱里有多少件物品。我想将数据显示为总数中有多少落入每个范围。所以,我使用这个 mysql 查询来计算每个答案的实例:
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet`
这是结果数据:
Closet | COUNT( * )
--------+------------
0 | 8
1-5 | 124
101-200 | 7
11-20 | 181
201-300 | 3
21-50 | 171
51-100 | 48
6-10 | 156
问题是按字母顺序排列,101-200 项排在 6-10 项之前。我基本上想以某种方式对此进行排序,将数字范围按逻辑顺序排列。 (1-5、6-10、11-20 等)。
我怎样才能做到这一点?
您必须使用 convert
& substring_index
。
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet` order by convert(substring_index(Closet,'-',1), unsigned integer)
这将根据范围的第一个数字对壁橱进行排序,这基本上应该完成这项工作。
我正在尝试就使用 google 表格收集的一些数据编写报告。每个人都被问及衣橱里有多少件物品。我想将数据显示为总数中有多少落入每个范围。所以,我使用这个 mysql 查询来计算每个答案的实例:
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet`
这是结果数据:
Closet | COUNT( * )
--------+------------
0 | 8
1-5 | 124
101-200 | 7
11-20 | 181
201-300 | 3
21-50 | 171
51-100 | 48
6-10 | 156
问题是按字母顺序排列,101-200 项排在 6-10 项之前。我基本上想以某种方式对此进行排序,将数字范围按逻辑顺序排列。 (1-5、6-10、11-20 等)。
我怎样才能做到这一点?
您必须使用 convert
& substring_index
。
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet` order by convert(substring_index(Closet,'-',1), unsigned integer)
这将根据范围的第一个数字对壁橱进行排序,这基本上应该完成这项工作。