SQL-具有左外部联接的基本表的字段总和

时间:2019-05-03 06:44:18

标签: sql ruby-on-rails

我有此方法可返回最终结果供我显示,订单表中有金额字段。此查询后,我想要该金额字段的总和,但同时我无法更改get_raw_records,因为左外连接和过滤器是必需的

def get_raw_records
  Order.includes(:customers, :line_items).where(aasm_state: ['completed']).filers(.....)
end

get_raw_records.sum(:amount)

此总和不正确,因为订单项重复,原因是订单项的左外连接

我正在尝试其他方法,例如,但它区分数量而不是订单记录

get_raw_records.distinct.sum(:amount)

有帮助吗?,我无法更改get_raw_records基本查询

1 个答案:

答案 0 :(得分:0)

在执行第二个查询数据之前可能已更改。 您需要在查询中添加此类字段-

sum(amount) over() as need_summ

并仅在任一结果行中使用此值