GROUP BY を使用して複数行のデータを 1 行に結合します
データ処理中に、各行が一意のエンティティを表し、特定の列をこれらのエンティティ間で統合する必要があるテーブルが発生することがあります。これは、特定の列の複数の結果行を 1 つの行に結合する必要がある場合に発生します。
「ActorsInfo」というテーブルがあり、「Movie」と「Actor」という 2 つの列があるとします。各行は、映画とそれに関連する俳優の組み合わせを表します。目標は、このデータを、「Movie」列と、各映画のすべての俳優のカンマ区切りリストを含む「ActorList」列を含む新しいテーブルに変換することです。
このためには、SQL の GROUP BY 句が便利です。 GROUP BY を使用すると、1 つ以上の列の値に基づいて行をグループ化し、集計関数を適用して各グループ内の概要情報を計算できます。
ここで重要なのは、string_agg() 集計関数です。指定した列の値を、選択した区切り文字で区切って連結します。この場合の構文は次のとおりです:
<code class="language-sql">SELECT Movie, string_agg(Actor, ', ') AS ActorList FROM ActorsInfo GROUP BY Movie;</code>
SELECT 句と GROUP BY 句の両方で「Movie」を指定して映画タイトルごとに行をグループ化し、カンマで区切られた Actor 値を連結して ActorList 列を計算します。
結果は、各行が一意の映画を表し、「ActorList」列にその映画に関与したすべての俳優の完全なリストが含まれる新しいテーブルになります。
以上がSQL の GROUP BY 句を使用して複数のデータ行を 1 つの行に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。