Postgres:两张表的总和

时间:2017-02-24 18:49:27

标签: ruby postgresql

我有两个不相关的表,并希望通过自动收报机对它们的值进行求和。

例如:

  1. 订单:Product_id,value
  2. 销售:Product_id,值
  3. 为了确保一切平衡为零,我希望按照产品ID对订单和销售进行分组,并对值进行求和。

1 个答案:

答案 0 :(得分:0)

orders_hash = Order.group(:product_id).sum(:value).sort_by(&:first).to_h
sales_hash  = Sale.group(:product_id).sum(:value).sort_by(&:first).to_h

orders_hash == sales_hash

如果上面是false

,您可以运行此检查
orders_hash.each do |k, v|
  raise "Mismatch for product_id: #{k}" unless sales_hash[k] == v
end