重複レコードを返す私はskipped_play_id
に基づいて、すべてのデータを選択するには、いくつかのクエリをしましたが、私は、それはまだいくつかの重複skipped_play_id
Railsのグループはまだ
user = User.first
skipped_plays=user.user_skipped_plays.select(:skipped_play_id,:created_at).group(:created_at,:skipped_play_id)
、なぜ私は:created_at
を提供する必要がありますを返すクエリを実行していたときに私はskipped_play_id
でグループ化されたクエリが必要な場合は、引数でグループの1つとして。私はuser.user_skipped_plays.select(:skipped_play_id,:created_at).group(:skipped_play_id)
に私のクエリを変更した場合、それは
ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column "user_skipped_plays.created_at" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT "user_skipped_plays"."skipped_play_id", "user_skippe...
^
: SELECT "user_skipped_plays"."skipped_play_id", "user_skipped_plays"."created_at" FROM "user_skipped_plays" WHERE "user_skipped_plays"."user_id" = $1 GROUP BY "user_skipped_plays"."skipped_play_id" ORDER BY "user_skipped_plays"."id" ASC LIMIT $2
from /Users/fourtyonestudio/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/postgresql_adapter.rb:657:in `prepare
を返します。私はどんなアドバイス
あなたがして、グループ内のすべての選択したフィールドを定義する必要があります。 groupで定義するよりも 'created_at'を選択したようです。 – Vishal
あなたは 'skipped_play_id'て欲しい、あなたは合計のいずれかのフィールドのカウントをしたいですか? – Vishal
@Vishal iはちょうどテーブルから全データ 'skipped_play_id'を抽出する'テーブルスキーマをskipped_play_id'によってグループ化 'user_skipped_plays'は' UserSkippedPlay(IDである整数、のcreated_at:日時、updated_atの:日時、USER_ID:整数、skipped_play_id:整数) 'あなたは'によってグループ化され –