PostgreSQLを実行していて、同じ列名と形式の複数(10以上)のテーブルがあり、それらの2つの列を合計したいと思います。テーブルの1つに行がない場合は、0(ゼロ)と見なす必要があります。
2つのテーブルの例:
TableA:
primkey | year | month | day | data_value
--------+------+-------+-----+-----------
20120101| 2012 | 01 | 01 | 3.7
20120102| 2012 | 01 | 02 | 1.0
表B:
primkey | year | month | day | data_value
--------+------+-------+-----+-----------
20120101| 2012 | 01 | 01 | 1.3
20120103| 2012 | 01 | 03 | 5.5
必要な出力:
primkey | year | month | day | data_value
--------+------+-------+-----+-----------
20120101| 2012 | 01 | 01 | 5.0
20120102| 2012 | 01 | 02 | 1.0
20120103| 2012 | 01 | 03 | 5.5
私はこれを行うことを考えていました:
SELECT a.primkey, a.year, a.month, a.day, a.data_value+b.data_valueas data_value FROM "TableA" as a FULL JOIN "TableB" as b ON a.primkey = b.primkey;
ただし、これは生成されます(data_valuesの一部が欠落しています)。
primkey | year | month | day | data_value
--------+------+-------+-----+-----------
20120101| 2012 | 01 | 01 | 5.0
20120102| 2012 | 01 | 02 |
20120103| 2012 | 01 | 03 |
注:primkeyは一意であり、PRIMARY KEYであり、これは10以上のテーブルを結合するために有効である必要があります