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関数はサードパーティーツールまたはカスタム集計関数によって実現されるため、対応する関数のインストールまたは作成が必要になる可能性があります。

bannerAds