「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PostgreSQLの複数の行にわたって値を連結するにはどうすればよいですか?

PostgreSQLの複数の行にわたって値を連結するにはどうすればよいですか?

2025-02-21に投稿
ブラウズ:903

How Can I Concatenate Values Across Multiple Rows in PostgreSQL?

postgresql data row value connection

]]

関係データベース操作では、最終結果を取得する前にデータを処理する必要があることがよくあります。一般的なタスクは、共通の識別子に基づいて複数の行の値を連結することです。 PostgreSQLでは、 group_concat 関数はこれに対する簡単なソリューションを提供します。

group_concat function

postgresqlバージョン9.0以降では、 group_concat 集計関数を導入します。 group_concat 構文は次のとおりです。

GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])

パラメーター:

  • 異なる:(オプション)重複した値が結果に含まれないようにします。
  • 式:結合される列または式。
  • 注文:(オプション)は、値の結合順序を指定します。
  • セパレーター:(オプション)連結値を分離するために使用される文字または文字列。デフォルトはコンマ(、)です。

「sample_data」と呼ばれる次の表を検討してください:

id value tm67 [ Tm67 9 ] tm99 2 tm99
4
tm67
3

各一意の「ID」の「値」列の値を連結するには、以下に示すように group_concat を使用できます。

SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;
このクエリは、次の出力を生成します:

id concatenated_values tm67 4,9,72 tm99 ]
2,3
]

]

ご覧のとおり、各「ID」の値は連結され、コンマで分離されます。

postgresql 9.0の代替構文

Postgresqlバージョン9.0から始めて、 group_concat

の代替構文を使用できます。
SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;

この構文は、上記の group_concat 構文に相当します。

結論は

group_concat または string_agg 関数を使用することにより、PostgreSQLのマルチローデータを簡単に連結できます。 選択する構文は、PostgreSQLバージョンと個人的な好みによって異なります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3