0

理论上我想要的是这样的:
:order => "column1 ASC, column2 DESC"

但在我的情况下, column1 实际上不是列,而是聚合值:
:order => relations.count

当其中一列实际上是聚合值时,如何按两列排序?

顺便说一句:计数器缓存不是一个选项(因为当我需要它时它已经过时了)

4

2 回答 2

0

要按计算值排序/分组/等,您必须在相应的子句中指定它,在您的情况下也使用(可能是左)连接:

Something.select("somethings.*, COUNT(others.id)").
          joins("LEFT JOIN others ON others.something_id = somethings.id").
          group("somethings.*").
          order("COUNT(others.id), column2 DESC")
于 2012-10-29T11:50:39.567 回答
0
:order => "COUNT(*), column2 DESC"
于 2012-10-29T11:36:12.870 回答