我想返回按当前季节的mountain_routes.hearts_count
排序的用户。
我已经为此编写了一种方法,但是我的问题是该用户所有mountain_routes的总和,我只想按给定range
中用户mountain_routes的总和]进行排序。
def best_of_season range = start_date..end_date ::Db::User .joins(:mountain_routes) .where(mountain_routes: { route_type: 'regular_climbing', created_at: range }) .select('users.id, SUM(mountain_routes.hearts_count)') .group('users.id') .distinct .order('SUM(mountain_routes.hearts_count) DESC') end
所以问题出在这部分
SUM(mountain_routes.hearts_count)
。如何仅在给定的range
中放置山区路线?
我想收到这样的输出:
NAME | HEARTS in this season
Thomas | 5
Dave | 3
Erick | 1
我想返回按当前季节的mountain_routes.hearts_count排序的用户。我已经为此写了一个方法,但是我的问题是用户的所有mountain_routes都求和了,我想...
您可以使用向SUM(mountain_routes.hearts_count)
添加别名并按order by子句使用它: