ホームページ > データベース > mysql チュートリアル > SQL で複数の俳優名を映画ごとに 1 つの列に結合するにはどうすればよいですか?

SQL で複数の俳優名を映画ごとに 1 つの列に結合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-15 08:40:47
オリジナル
272 人が閲覧しました

How Can I Combine Multiple Actor Names into a Single Column per Movie in SQL?

SQL で複数の俳優名を映画ごとに 1 つの列に統合する

映画データベースを使用する場合、多くの場合、各映画の俳優情報を要約する必要があります。 これには、1 つの映画に関連付けられた複数の俳優名を 1 つの列エントリにマージすることが含まれます。

SQL ソリューション

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート