Rails-按汇总函数的结果分组?

时间:2020-06-24 22:57:39

标签: sql ruby-on-rails ruby

假设我有一个包含客户customer_id的购买表以及他们在购买price上花费的钱。我想对每个客户的总支出进行汇总,然后找出这些支出的频率。

我尝试过类似的事情:

Purchase.
group(:customer_id).
select("SUM(price)").
group("SUM(price)").
count

但收到错误ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: aggregate function calls cannot be nested

有一个两步过程,在这个过程中,我将"SUM(price)"用作数组,并将其转换为以总价格为键,频率为值的哈希,但是我想知道是否有一个-使用Rails语法进行单步查询。

1 个答案:

答案 0 :(得分:0)

该表上还有其他列吗?

也尝试将它们分组。

Purchase.select("SUM(price),purchase_id").group_by(:purchase_id)

确保只选择所需的列并将其分组。