0

私はMySQLで開発しており、Postgresを使用しているHerokuにデプロイしました。私のクエリのいくつかは、Postgresで動作するように書き直す必要があるようです。誰かが私のグループを以下のような問題で修正するのを手伝ってもらえますか?

Herokuログエラー:

ActiveRecord::StatementInvalid (PGError: ERROR:  column "itunes_data.artist_show" must appear in the GROUP BY clause or be used in an aggregate function

私のコントローラーから:

def itunes_top_tracks
 @itunes_top_tracks = ItunesData.all(:select => "artist_show, title, label_studio_network, isrc, SUM(units) as unitsum", :group => :isrc, :order => "unitsum DESC", :limit => 10)
end

私は問題が何であるかを理解し、ストレートSQLでこれをどのように行うかを知っていますが、Railsの方法がわかりませんか?

皆さんありがとう

4

2 に答える 2

1
def itunes_top_tracks
 @itunes_top_tracks = ItunesData.all(:select => "artist_show, title, label_studio_network, isrc, SUM(units) as unitsum", 
    :group => [:artist_show, :title, :label_studio_network, :isrc], :order => "unitsum DESC", :limit => 10)
end
于 2012-04-16T11:38:31.417 に答える
0

この質問を見てみましょう - PostgreSQL - GROUP BY 句または集約関数で使用することで、Postgres で group by を使用するための回答の方向性が示されます。

または、Heroku の mySQL アドオンを使用することを検討してください。Postgres を使用することについて心配する必要はありません。

于 2012-04-16T11:38:12.710 に答える