2つのテーブルデータをマージして追加するSQL方法とは

SQLでは、UNION ALLとSUM関数を使用して、2つのテーブルのデータの結合と合計を行うことができます。

  1. UNION ALL:データの重複を削除せずに行同士にマージし、マージされた結果の合計をSUM関数で取得します。

例えば、table1 と table2 という、col1 と col2 という同じ列を持つ 2 つのテーブルがあった場合、以下のステートメントを使ってこれら 2 つのテーブルのデータを結合して加算できます。

SELECT col1, col2, SUM(value) AS total
FROM (
SELECT col1, col2, value FROM table1
UNION ALL
SELECT col1, col2, value FROM table2
) AS combined_table
GROUP BY col1, col2;

UNION ALL によって、table1 と table2 のデータを列方向に結合した後、SUM 関数で value カラムの合計を算出し、col1 と col2 でグループ化します。

  1. 構造が異なる2つの表であっても、共通する列があればJOIN句で結合した上で、結合後のデータに対してSUM関数を使って合計値を求めることが可能です。

例えば、table1とtable2という共通の列colを持つ2つのテーブルがあった場合、2つのテーブルのデータを合算するには次のステートメントを使用します。

SELECT t1.col, SUM(t1.value + t2.value) AS total
FROM table1 t1
JOIN table2 t2 ON t1.col = t2.col
GROUP BY t1.col;

JOIN句を使ってtable1とtable2のデータを結合し、SUM関数でt1.valueとt2.valueカラムを合計し、t1.colでグループ化しています。

bannerAds