1

クエリは私の強みではありませんでした。現在のクエリを変更して、ASC/DESCによる順序付けを許可しようとしています。

このために、共有、スキャン、レビュー、利用(Activity.typeからアクセス可能)に拡張されたモデルアクティビティがあります。

私の現在のクエリは

results=Activity.select("*, count(*) as count").where(created_at: date_from..date_to).group(:user_id).having("count > 0").count("type='#{val}', count(*) #{desc/asc}")

それは私に次のようなものを与えます:

{2=>1, 3=>1, 1=>305, 111=>99, 110=>98, 109=>97, 108=>96, 107=>95, 106=>94, 105=>93,...

ここでの問題は、最初の2つが(type=#{val}).count= 0であるということです。つまり、それらの下にアクティビティレコードがありますが、タイプが異なります。これらの.count=0が実際に順序を尊重するようにクエリを変更する方法はありますか?

それ以外の場合は、回避策として、これらすべてを手動で配列に追加し、最後に評価することができます。

編集:私の現在の問題に更新

4

1 に答える 1

1

これを試しましたか:

results=Activity.select("*, count(*) as count")
.where(created_at: date_from..date_to).group(:user_id, :type)
.having("count > 0").order("type ASC, count(*) DESC")
于 2012-09-18T15:37:20.923 に答える