the*_*ost 8 mysql group-by count
我需要计算值范围内的记录.
例如:对于集合 1, 7, 9, 23, 33, 35, 1017
select count(myvalue) group by round(myvalue / 10) 给出类似的东西:
0-10 -> 3
10-20 -> 0
20-30 -> 1
30-40 -> 2
1010-1020 -> 1
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我需要设置一个上限,以便MySQL返回40+ --> 1?怎么能实现这一目标?
pil*_*eks 12
您可以在客户端union汇总值,也可以使用两个查询来获取数据,例如:
select round(myvalue / 10), count(myvalue) from table where myvalue < 40 group by round(myvalue / 10)
union
select '40+', count(myvalue) from table where myvalue >= 40
Run Code Online (Sandbox Code Playgroud)
绝对有可能在具有子查询或复杂条件的单个查询中编写它,但它不会那么简单和可维护.