假设我有一个包含客户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语法进行单步查询。
答案 0 :(得分:0)
该表上还有其他列吗?
也尝试将它们分组。
Purchase.select("SUM(price),purchase_id").group_by(:purchase_id)
确保只选择所需的列并将其分组。