Postgres / Rails - 按Heroku部署问题分组

时间:2012-04-16 10:46:40

标签: ruby-on-rails-3 postgresql heroku

我正在开发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方式?

全部谢谢

2 个答案:

答案 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。