Heim > Datenbank > MySQL-Tutorial > So drehen Sie eine Tabelle in MySQL: Zeilen in Spalten umwandeln?

So drehen Sie eine Tabelle in MySQL: Zeilen in Spalten umwandeln?

Patricia Arquette
Freigeben: 2025-01-25 11:26:10
Original
607 Leute haben es durchsucht

How to Pivot a Table in MySQL: Transforming Rows into Columns?

die Tabelle in die Konvertierzeile in Spalte

formen

<:> Frage:

eine Tabelle mit drei Spalten in eine Datenperspektivtabelle umwandeln, in der die Linie in Spalten umgewandelt wird.

Beispiel:

Eingangstabelle:

Die erforderliche Ausgabe (Datenperspektivtabelle):

hostid itemname itemvalue
1 A 10
1 B 3
2 A 9
2 C 40
Lösung:

Die Datenperspektivfunktion von
hostid A B C
1 10 3 0
2 9 0 40
Mysql beinhaltet einen dreistufigen Prozess:

Interessierte Spalten auswählen:

  1. grundlegende Tabellen mit zusätzlicher Spaltenausdehnung:
<code class="language-sql">SELECT hostid, itemname, itemvalue
FROM history;</code>
Nach dem Login kopieren
Fügen Sie eine Spalte hinzu, die jedem einzigartigen Elementnamen entspricht.
  1. Gruppierung und Aggregation der Expansionstabelle:

Gruppieren im HostID und der Summe des Wertes jeder Spalte.
<code class="language-sql">CREATE VIEW history_extended AS (
  SELECT
    history.*,
    CASE WHEN itemname = "A" THEN itemvalue END AS A,
    CASE WHEN itemname = "B" THEN itemvalue END AS B,
    CASE WHEN itemname = "C" THEN itemvalue END AS C
  FROM history
);</code>
Nach dem Login kopieren
  1. Optional: Verschönerung der Aggregatabelle (ersetzen Sie den Nullwert auf 0)

Hinweis und Einschränkungen:
<code class="language-sql">CREATE VIEW history_itemvalue_pivot AS (
  SELECT
    hostid,
    SUM(A) AS A,
    SUM(B) AS B,
    SUM(C) AS C
  FROM history_extended
  GROUP BY hostid
);</code>
Nach dem Login kopieren
  1. Diese Lösung geht davon aus, dass die Spalte Perspektive der Datenperspektive einen bestimmten Wert hat (hier ist itemalue).
  2. Es unterstützt mehrere Y -Werte, ist jedoch darauf beschränkt, dass Datenperspektivspalten manuell addiert werden.
<code class="language-sql">CREATE VIEW history_itemvalue_pivot_pretty AS (
  SELECT
    hostid,
    COALESCE(A, 0) AS A,
    COALESCE(B, 0) AS B,
    COALESCE(C, 0) AS C
  FROM history_itemvalue_pivot
);</code>
Nach dem Login kopieren
Die Verwendung einer großen Anzahl von Daten zum Generieren von Daten sehen Tabellen kann eine Herausforderung sein.

Das obige ist der detaillierte Inhalt vonSo drehen Sie eine Tabelle in MySQL: Zeilen in Spalten umwandeln?. 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