在轨道4中选择和组的PG查询

时间:2015-02-27 07:28:11

标签: ruby-on-rails ruby pg

我正在学习join个关联表,并一起查询selectgroup。假设我有以下数据库:

订单

#has_many :items
id , title , description

产品:

#belongs_to :order
#belongs_to :product
id , order_id , name , product_id , cost

现在我想列出所有订单的标题,其中包含来自Item表的order_id总数。 例如:

Order_title_1 => 5 (count of order_id )

我尝试了这个查询,但却出错:我知道这不正确

Item.joins(:orders).select("orders.id, orders.title, SUM(items.order_id) as total").group("order_id")

1 个答案:

答案 0 :(得分:1)

当你在postgresql中时,SELECT子句中的列必须通过子句存在于组中,但聚合中使用的列除外功能。但在你的情况下,事实并非如此。尝试将代码编写为:

Item.joins(:order)
    .select("orders.id, orders.title, SUM(items.order_id) as total")
    .group("orders.id, orders.title")