Heim > Datenbank > MySQL-Tutorial > Wie transformiere ich eine MySQL-Ergebnismenge mithilfe der bedingten Aggregation in eine Pivot-Tabelle?

Wie transformiere ich eine MySQL-Ergebnismenge mithilfe der bedingten Aggregation in eine Pivot-Tabelle?

Patricia Arquette
Freigeben: 2024-12-03 19:44:14
Original
161 Leute haben es durchsucht

How to Transform a MySQL Result Set into a Pivot Table Using Conditional Aggregation?

Pivot-Tabellentransformation in MySQL

Sie haben eine Ergebnismenge in MySQL mit mehreren Zeilen, die dieselbe ID, aber unterschiedliche Typen und Bezeichnungen haben, und Sie möchten es in ein Pivot-Tabellenformat umwandeln, in dem Typen zu Spalten und Bezeichnungen zu Zeilenwerten innerhalb dieser Spalten werden. So können Sie dies erreichen:

Die Lösung besteht im Pivotieren der Daten, was als Erstellen einer Pivot-Tabelle bezeichnet wird. Der Prozess umfasst:

  1. Vorbereiten der Abfrage:

    SELECT ID, 
    MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
    MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
    MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
    Email
    FROM mytable
    GROUP BY ID, Email
    Nach dem Login kopieren
  2. Interpretieren der Abfrage:

    • Die Abfrage verwendet zur Zuweisung eine bedingte Aggregation mit dem CASE-Ausdruck Bezeichnungen in die entsprechenden Typspalten (202, 234, 239).
    • Die MAX-Funktion aggregiert die Bezeichnungen innerhalb jeder Gruppe von ID und E-Mail.
    • Die GROUP BY-Klausel kombiniert die Ergebnisse basierend auf der ID und E-Mail, um die Pivot-Tabelle zu erstellen Format.

Hinweis:

Es ist wichtig zu beachten, dass die Abfrage davon ausgeht, dass Sie die verschiedenen Typwerte im Voraus kennen. In SQL müssen Spaltendefinitionen während der Abfragevorbereitung festgelegt werden. Wenn Sie über einen unterschiedlichen Satz von Typwerten verfügen, müssen Sie eine dynamische Abfrage oder eine gespeicherte Prozedur verwenden, um die entsprechende Abfrage zur Laufzeit zu generieren.

Das obige ist der detaillierte Inhalt vonWie transformiere ich eine MySQL-Ergebnismenge mithilfe der bedingten Aggregation in eine Pivot-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage