MySQL SQL连续分组求分组范围?
网友解答: 这个可以用到case...when...,case...when...有点类似我们在其它编程语言中的if...else..功能。通过case...when...的逻辑判断,我
这个可以用到case...when...,case...when...有点类似我们在其它编程语言中的if...else..功能。通过case...when...的逻辑判断,我们可以做到分组统计。
case...when...数据的逻辑判断语法上可以这么理解:
case 字段名 when 值 then 符合逻辑时指定的值 else 不符合逻辑指定的值 end简单来说就是当字段名符合条件时,我们可以指定一个值,当不符合条件时我们可以指定另外一个值。
题主描述的问题就可以这样来解决:
case when (number<2 then '1-1' when (number between 3 and 6) then '3-6' .... else end)
这样就可以解决题主所提到的问题。
在这里我举一个例子,比如我们需要统计某个省份的用户交易金额区间分布,就可以结合group by进行相应的统计,达到目的。
分步的方法-逐个区间进行统计我们也可以利用where条件进行统计,where条件的统计就需要我们利用union的方法将满足条件的各个查询结果合并在一起,得到最终的统计结果。比如
select count(number) number_count from numbers where number between 3 and 6
union
select count(number) number_count from numbers where number between 8 and 12
union
...
不过这样的话比较麻烦而且比较费时,因此不推荐这么去做,通过case...when....去处理分区间的统计是一个不错的选择。
网友解答:可以 用case when 写sql的时候多拼一列 例如 case when number 100 and number <102 then 1 when ...... 然后 group by 它 就可以实现了