我试着用谷歌表格写一份关于我收集的数据的报告。每个人都被问到他们衣橱里有多少件物品。我想将这些数据作为总数中有多少属于每个范围的一个计数。因此,我使用这个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等)
我怎样才能做到这一点?
发布于 2016-01-09 07:53:11
您必须使用convert
& substring_index
。
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet` order by convert(substring_index(Closet,'-',1), unsigned integer)
这将通过获取范围的第一个数字来排序Closet,这应该是完成这项工作的主要方法。
https://stackoverflow.com/questions/34691037
复制相似问题