我正在尝试撰写一份关于我使用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等)。
我该如何做到这一点?
答案 0 :(得分:1)
您必须使用convert
& substring_index
。
SELECT `Closet` , COUNT( * ) FROM `TABLE 1` GROUP BY `Closet` order by convert(substring_index(Closet,'-',1), unsigned integer)
这将通过获取范围的第一个数字来对Closet进行排序,这应该基本上完成工作。