理論的に私が欲しいのはこれです:
:order => "column1 ASC, column2 DESC"
しかし、私の場合、column1 は実際には列ではなく、集計された値です。
:order => relations.count
2 つの列のうちの 1 つが実際に集計値である場合、どうすれば 2 つの列で並べ替えることができますか?
ところで:カウンターキャッシュはオプションではありません(必要なときに時代遅れになっているため)
理論的に私が欲しいのはこれです:
:order => "column1 ASC, column2 DESC"
しかし、私の場合、column1 は実際には列ではなく、集計された値です。
:order => relations.count
2 つの列のうちの 1 つが実際に集計値である場合、どうすれば 2 つの列で並べ替えることができますか?
ところで:カウンターキャッシュはオプションではありません(必要なときに時代遅れになっているため)
計算された値で順序付け/グループ化/などするには、対応する句でそれを指定する必要があります。この場合、(おそらく左) 結合も使用します。
Something.select("somethings.*, COUNT(others.id)").
joins("LEFT JOIN others ON others.something_id = somethings.id").
group("somethings.*").
order("COUNT(others.id), column2 DESC")
:order => "COUNT(*), column2 DESC"