【发布时间】:2019-11-10 19:06:30
【问题描述】:
我想返回当前季节按mountain_routes.hearts_count 排序的用户。
我已经为此编写了一个方法,但我的问题是用户的所有山路的总和,我只想按给定range中用户山路的总和排序。
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
【问题讨论】:
标签: sql ruby-on-rails ruby postgresql activerecord