string_agg() を使用した PostgreSQL でのデータ連結のマスター
データベース管理では、複数の行のデータを 1 つの文字列に結合するのが一般的なタスクです。 MySQL は便利な GROUP_CONCAT
関数を提供しますが、PostgreSQL は同様に強力な string_agg()
関数を提供します。 このガイドでは、string_agg()
を使用して同じ結果を達成する方法を説明します。
PostgreSQL ソリューション: string_agg()
PostgreSQL 9.0 より前では、GROUP_CONCAT
に直接相当するものは利用できませんでした。 ただし、string_agg()
はこのギャップを埋め、ユーザー指定の区切り文字を使用して列の値を効率的に連結します。
構文と使用法
string_agg()
関数は次の単純な構文に従います。
<code class="language-sql">string_agg(expression, delimiter)</code>
具体例
元の質問で説明されているテーブルを想定してみましょう。次のクエリは、string_agg()
の動作を示しています。
<code class="language-sql">SELECT id, string_agg(column_name, ',') AS concatenated_values FROM the_table GROUP BY id;</code>
このクエリは次の出力を生成します:
<code>TM67 | 4,9,72 TM99 | 2,3</code>
重要な考慮事項
string_agg()
は列だけでなく、あらゆる式で機能します。DISTINCT
関数内で string_agg()
キーワードを使用します。このガイドでは、PostgreSQL でデータを連結するための明確かつ簡潔な方法を提供し、MySQL の GROUP_CONCAT
に代わる強力な代替手段を提供します。
以上がPostgreSQL でデータを連結する方法: string_agg() ガイド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。