ホームページ >データベース >mysql チュートリアル >PostgreSQLでフィールド値を連結するにはどうすればよいですか?
一部のデータベース アプリケーションでは、テーブルから一意の識別子ごとに 1 つの行を取得し、対応するフィールド値を連結する必要があります。たとえば、次のデータを含むテーブルがあるとします:
ID | 列A | 列B |
---|---|---|
TM67 | 4 | 32556 |
TM67 | 9 | 98200 |
TM67 | 72 | 22300 |
TM99 | 2 | 23009 |
TM99 | 3 | 11200 |
期待される出力は次のとおりです:
ID | 列A | 列B |
---|---|---|
TM67 | 4,9,72 | 32556,98200,22300 |
TM99 | 2,3 | 23009,11200 |
MySQL では、通常、この目的を達成するために GROUP_CONCAT 集計関数が使用されます。ただし、PostgreSQL には直接同等のものはありません。
幸いなことに、PostgreSQL は同じ結果を達成するための代替メカニズムをいくつか提供しています。
<code class="language-sql">SELECT id, string_agg(some_column, ',') FROM the_table GROUP BY id</code>
このメソッドは、string_agg 関数 (PostgreSQL 9.0 で導入) を使用して、指定された列の値をカンマ区切りの文字列に集計します。 GROUP BY 句により、集計操作が一意の ID ごとに個別に実行されるようになります。
以上がPostgreSQLでフィールド値を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。