映画データベースを使用する場合、多くの場合、各映画の俳優情報を要約する必要があります。 これには、1 つの映画に関連付けられた複数の俳優名を 1 つの列エントリにマージすることが含まれます。
PostgreSQL は、このタスクに最適な string_agg()
関数を提供します。 以下はその使用法を示すクエリです:
<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actors FROM tbl GROUP BY movie;</code>
このクエリ:
movie
: 映画のタイトルを含む列を指定します。actor
: 俳優名をリストする列を指定します。string_agg(actor, ', ')
: この関数は、各映画の俳優名をカンマとスペースで区切って連結します。GROUP BY movie
: 結果をグループ化し、ムービーごとに 1 行を確保します。string_agg()
関数は、複数の行を 1 つの文字列値に結合することに優れています。 ここでは、各映画の俳優のカンマ区切りリストを作成します。
ソートされたアクター リストの場合、ORDER BY
内に string_agg()
句を含めます:
<code class="language-sql">string_agg(actor, ', ' ORDER BY actor) AS actors</code>
ただし、多くの場合、サブクエリの方がソートのパフォーマンスが向上します。
string_agg()
以上がSQL で複数の俳優名を映画ごとに 1 つの列に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。