你能帮忙解决这个问题吗?
SELECT nb_user, count(nb_user) as nb_account FROM (
SELECT COUNT( USER.user_id ) AS nb_user
FROM USER
GROUP BY USER.account_id
) as toto
GROUP BY nb_user
我想将它翻译为在我的 rails 3.2 应用程序中与 mongoid 一起使用。
你能帮忙解决这个问题吗?
SELECT nb_user, count(nb_user) as nb_account FROM (
SELECT COUNT( USER.user_id ) AS nb_user
FROM USER
GROUP BY USER.account_id
) as toto
GROUP BY nb_user
我想将它翻译为在我的 rails 3.2 应用程序中与 mongoid 一起使用。
我有一个很好的结果,但我不确定这是最好的解决方案。
在我的控制器中:
map = {"sum" => 0}
reduce = "function(doc, prev) {
if(prev[doc.user_user_id] == null){
prev[doc.user_user_id] = 1;
prev.sum += 1;
}
}"
data = MyLog.collection.group(:key =>'user_account_id', :initial => map, :reduce => reduce)
data_result = {}
data.each do |data|
if data_result[data['sum']].nil?
data_result[data['sum']] = 1
else
data_result[data['sum']] +=1
end
end