4

次のモデルがあるとします。

class Vote < ActiveRecord::Base
  attr_accessible :user_id, :vote_for_id, :voting_category_id, ,:points_earned
  belongs_to :user
  belongs_to :vote_for
  belongs_to :voting_category

リーダー ボードを返す PostgreSQL DB のクエリを作成する方法を知りたいです。つまり、最初から最後に並べ替えられた、各ユーザーの points_earned の合計ですか?

これまでのところ、私は持っています:

Votes.sum(:points_earned).group(:user_id, :id).order(:points_earned)

前もって感謝します

4

2 に答える 2

2

解決

次のクエリは、mysql と postgress で機能します。

Vote.         joins(:user).
              select('users.*, sum(points_earned) as total').
              group('user_id').
              order('total DESC').
              limit(20)
于 2013-07-31T23:05:42.307 に答える