返回信息流就我有一个数据表table,有一个字段value 取值0-100
我希望统计一下value取值0-10的有多少个,10-20的有多少个......以此类推
最后生成一个表。一共有十列,列名是0-10,10-20...等等。只有一行,就是统计的每个区间的记录数量
原本是采用了
select (select count(*) from table where (value >=0 &&value < 10 ) as '0-10', select ..... as....
这样一长串,结果因为数据量太大,效率特别低。
求大神给我一个比较高效的方法啊[ema12]
这是一条镜像帖。来源:北邮人论坛 / database / #10600同步于 2017/10/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
〖紧急求助〗请问这个SQL语句怎么写
c546229855
2017/10/11镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
SELECT FLOOR(val / 10) AS `val`, COUNT(*) AS `count` FROM `shit` GROUP BY FLOOR(`val` / 10);
我能想到的就这样,你可以试着给value字段加个index会快很多
认可三楼写法,顺带更新一下字段名
SELECT FLOOR(value / 10) AS `val`, COUNT(*) AS `count` FROM `shit` GROUP BY val;