-1

你能帮忙解决这个问题吗?

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 一起使用。

4

1 回答 1

0

我有一个很好的结果,但我不确定这是最好的解决方案。

在我的控制器中:

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
于 2012-04-30T18:05:57.840 回答