新手问题 有关逻辑的问题,应该从哪里下手。主要思路是什么

sjzg001 · August 13, 2014 · Last by helloqidi replied at August 21, 2014 · 1912 hits

我要循环 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"}
)
You need to Sign in before reply, if you don't have an account, please Sign up first.