Heim >Datenbank >MySQL-Tutorial >Wie kann ich in SQL mehrere Schauspielernamen in einer einzelnen Spalte pro Film kombinieren?

Wie kann ich in SQL mehrere Schauspielernamen in einer einzelnen Spalte pro Film kombinieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-15 08:40:47273Durchsuche

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

Konsolidierung mehrerer Schauspielernamen in einer einzelnen Spalte pro Film in SQL

Bei der Arbeit mit Filmdatenbanken ist es oft erforderlich, Schauspielerinformationen für jeden Film zusammenzufassen. Dabei werden mehrere Schauspielernamen, die einem einzelnen Film zugeordnet sind, in einem einzigen Spalteneintrag zusammengeführt.

SQL-Lösung

PostgreSQL bietet die Funktion string_agg(), die sich ideal für diese Aufgabe eignet. Hier ist eine Abfrage, die ihre Verwendung demonstriert:

<code class="language-sql">SELECT
    movie,
    string_agg(actor, ', ') AS actors
FROM
    tbl
GROUP BY
    movie;</code>

Diese Abfrage:

  • movie: Gibt die Spalte mit Filmtiteln an.
  • actor: Gibt die Spalte mit den Namen der Schauspieler an.
  • string_agg(actor, ', '): Diese Funktion verkettet die Namen der Schauspieler für jeden Film und trennt sie durch Kommas und Leerzeichen.
  • GROUP BY movie: Gruppiert die Ergebnisse und stellt sicher, dass es eine Zeile pro Film gibt.

Detaillierte Erklärung

Die Funktion string_agg() zeichnet sich dadurch aus, dass sie mehrere Zeilen zu einem einzigen Zeichenfolgewert kombiniert. Hier wird für jeden Film eine durch Kommas getrennte Liste der Schauspieler erstellt.

Für sortierte Schauspielerlisten fügen Sie eine ORDER BY-Klausel in string_agg():

ein
<code class="language-sql">string_agg(actor, ', ' ORDER BY actor) AS actors</code>

Allerdings bietet eine Unterabfrage oft eine bessere Leistung beim Sortieren.

Vorteile von string_agg()

  • Optimiert die Datenverarbeitung durch die Zusammenfassung mehrerer Zeilen zu einzelnen Werten.
  • Verbessert die Datenpräsentation durch Gruppierung verwandter Schauspielerdaten für jeden Film.

Das obige ist der detaillierte Inhalt vonWie kann ich in SQL mehrere Schauspielernamen in einer einzelnen Spalte pro Film kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn