-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

Rails3.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 に答える