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