理论上我想要的是:
:order => "column1 ASC, column2 DESC"
但在我的例子中,column1实际上不是一个列,而是一个聚合值:
:order => relations.count
当其中一列实际上是聚合值时,我如何按两列排序?
顺便说一句: Counter-Cache不是一个选项(因为它在我需要的时候已经过时了)
发布于 2012-10-29 19:36:13
:order => "COUNT(*), column2 DESC"发布于 2012-10-29 19:50:40
要通过计算值对/group/etc进行排序,您必须在相应的子句中指定它,在本例中也使用(可能是左)连接:
Something.select("somethings.*, COUNT(others.id)").
joins("LEFT JOIN others ON others.something_id = somethings.id").
group("somethings.*").
order("COUNT(others.id), column2 DESC")https://stackoverflow.com/questions/13120837
复制相似问题