我正在开发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方式?
全部谢谢
答案 0 :(得分: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
答案 1 :(得分:0)
看看这个问题 - PostgreSQL - GROUP BY clause or be used in an aggregate function它提供了在Postgres中使用group bys的答案的方向。
或者考虑使用Heroku的mySQL插件,不要担心尝试使用Postgres。