私は2つの無関係のテーブルを持っており、ティッカーでそれらの値を合計したいと思います。例えばPostgres:2つのテーブルの合計
:
- 受注:PRODUCT_ID、値
- 販売:PRODUCT_ID、すべてがゼロに釣り合うことを確認するために値
、私はグループたいのですが商品IDごとに注文と売上を計算し、値を合計します。
私は2つの無関係のテーブルを持っており、ティッカーでそれらの値を合計したいと思います。例えばPostgres:2つのテーブルの合計
:
、私はグループたいのですが商品IDごとに注文と売上を計算し、値を合計します。
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
私たちは何か似ているが、2つのデータベース呼び出しのために悪いですか? –
@AndrewCPKelley無関係の2つのテーブルで計算を行うために、どのように1回のDB呼び出しが表示されますか? :)これが可能であっても(プログラミングでは何も不可能です)、おそらく純粋な複雑なSQLであるべきです。 –
私はあなたがしたことを好きですが、彼らが等しいかどうかを見るよりも和を得たいと思います。無関係なテーブルの合計について、多くのSOの投稿を見ましたが、より明確になるように探していました。参照してください:http://stackoverflow.com/questions/13021623/how-to-do-a-sum-across-two-unrelated-tables –
ある場合は、このチェックを実行することができます。これは、投稿されたコメントに基づいて誤解を招く – engineersmnky