ようこそ.....(レール)のpostgresエラー(コラム「posts.idは」GROUP BY句に現れなければなりません)
私は私のレールのアプリ
@section.posts.select("posts.*, count(posts.user_id) as user_posts_count").group('posts.user_id')
.order("user_posts_count DESC").limit(10)
上で最も利用者のポストを取得したいです
しかし、それはHerokuの ための最善の方法ですが、私はこのエラーを取得する理由を私は知らないのでsqlit3とmysql2
PG::GroupingError: ERROR: column "posts.id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT posts.*, count(posts.user_id) as user_posts_count FR...
上のあらゆる問題のない私のコードの作品は、私は、PostgreSQLを使用する必要がある一方で、私は、PostgreSQLに問題がありますにPostgreSQLの
誰も私を助けている場合、私は願っています>>>
'group by'では決して' select * 'を使わないでください。 –
このエラーは、何が間違っているかを正確に伝えています。あなたの 'select()'のすべての列も 'group()'になければなりません。 'count()'、 'sum()'、 'avg()'などのコース計算を除外します。おそらくuser_idのようなものを選択したいだけです。 group(:user_id).order( "user_posts_count DESC")。limit(10) '@ section.posts.select(" user_id、count(user_id)as user_posts_count ")。 – Dan
あなたの兄弟の仕事に感謝しています。私はまだもう少し経験が必要だと思いますが、なぜpostgreSQLで動作しないのですが、mysqlとsqliteで作業するのですか –