我要循环 user 表,把积分 0~100,100~200,200~300......统计每个阶段的人数
users_count=User.select('积分').group('积分').count u100 , u200, u300 = 0,0,0 #分别是0-100,100-200,200-300 users_count.each do |k,v| if k <= 100 u100 += v elsif k<=200 && k>100 u200 += v elsif k<=300 && k>200 u300 += v end
User.where("data > 0 and data < 100").count
这个可以不
@fayake @Msms 积分 0~100,100~200,200~300.......
#3 楼 @sjzg001
users_count=User.select('积分').group('积分').count u_number = Hash.new(0) user_count.each{|k,v| u_number[(k/100).to_i] += v} u_number[0]是0-100 以内的 u_number[1]是100-200 以内的 u_number[2]是200-300 以内的
其实也就是一个 sql 啦。。。
select (score / 100) r, count(*) from users group by r
MongoDB 可以这样
db.user.mapReduce( function(){ emit(Math.round(this.current_point/100), 1); }, function(key, values) { return Array.sum(values) }, {out :"user_totals"} )