假设我有一个购买表,其中包含一个客户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语法的一步查询。
发布于 2020-06-25 09:14:43
那张桌子上还有其他栏目吗?
也试着对它们进行分组。
Purchase.select("SUM(price),purchase_id").group_by(:purchase_id)确保只获取所需的列,并对它们进行分组。
https://stackoverflow.com/questions/62565313
复制相似问题