db2で複数のデータを1つにマージの方法
DB2では、複数のデータを1つのデータに結合するために、集計関数とGROUP BY句を使用できます。
次のテーブル構造とデータがあるとします。
CREATE TABLE my_table (
id INT,
value VARCHAR(50)
);
INSERT INTO my_table (id, value)
VALUES (1, 'data1'), (1, 'data2'), (2, 'data3'), (2, 'data4'), (2, 'data5');
同じIDを持つ複数のデータを1つのデータにまとめるには、GROUP BY句とGROUP_CONCAT関数(複数の値を1つの文字列に結合する)を使用します。
SELECT id, GROUP_CONCAT(value) AS merged_values
FROM my_table
GROUP BY id;
検索結果は次のとおりです。
id | merged_values
---+-----------------
1 | data1,data2
2 | data3,data4,data5
同一IDの複数のデータが1行にまとめられ、値はカンマ区切りで連結されていることがわかります。
DB2では、GROUP_CONCAT関数はサードパーティーツールまたはカスタム集計関数によって実現されるため、対応する関数のインストールまたは作成が必要になる可能性があります。