PostgreSQL データ行値接続
リレーショナル データベースの操作では、多くの場合、最終結果を取得する前にデータを処理する必要があります。一般的なタスクは、共通の識別子に基づいて複数の行の値を連結することです。 PostgreSQL では、GROUP_CONCAT
関数がこれに対する簡単な解決策を提供します。
GROUP_CONCAT
関数PostgreSQL バージョン 9.0 以降では、GROUP_CONCAT
集計関数が導入されました。この関数は、列内の値のセットを取得し、それらを 1 つの文字列に連結します。 GROUP_CONCAT
の構文は次のとおりです:
<code class="language-sql">GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])</code>
パラメータ:
「sample_data」という名前の次のテーブルについて考えてみましょう:
id | value |
---|---|
TM67 | 4 |
TM67 | 9 |
TM67 | 72 |
TM99 | 2 |
TM99 | 3 |
一意の「id」ごとに「value」列の値を結合するには、次のように GROUP_CONCAT
を使用できます:
<code class="language-sql">SELECT id, GROUP_CONCAT(value) AS concatenated_values FROM sample_data GROUP BY id;</code>
このクエリは次の出力を生成します:
id | concatenated_values |
---|---|
TM67 | 4,9,72 |
TM99 | 2,3 |
ご覧のとおり、各「id」の値が連結され、カンマで区切られています。
PostgreSQL バージョン 9.0 以降では、GROUP_CONCAT
の代替構文を使用できます:
<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values FROM sample_data GROUP BY id;</code>
この構文は、上記の GROUP_CONCAT
構文と同等です。
PostgreSQL では、GROUP_CONCAT
関数または string_agg
関数を使用して、複数のデータ行を簡単に結合できます。 どの構文を選択するかは、PostgreSQL のバージョンと個人的な好みによって異なります。
以上がPostgreSQL で複数の行にわたって値を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。