Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine Pivot-Tabellenausgabe mithilfe von MySQL-Abfragen?

Wie erstelle ich eine Pivot-Tabellenausgabe mithilfe von MySQL-Abfragen?

Mary-Kate Olsen
Freigeben: 2025-01-25 20:37:09
Original
392 Leute haben es durchsucht

How to Generate a Pivot Table Output Using MySQL Queries?

Pivot-Tabellenausgabe in MySQL zurückgeben

Angenommen, Sie haben eine MySQL-Tabelle, die wie folgt organisiert ist:

公司名称 操作 页数
公司A 打印 3
公司A 打印 2
公司A 打印 3
公司B 邮件 NULL
公司B 打印 2
公司B 打印 2
公司B 打印 1
公司A 打印 3

Das Ziel besteht nun darin, eine MySQL-Abfrage auszuführen, um eine Ausgabe ähnlich dieser zu erzeugen:

公司名称 邮件 打印1页 打印2页 打印3页
公司A 0 0 1 3
公司B 1 1 2 0

Im Wesentlichen stellt diese Ausgabe eine Pivot-Tabelle dar, die die Daten basierend auf der Kombination aus Aktion und Seitenanzahl für jeden Firmennamen sortiert.

Lösung

Um die Pivot-Tabellenausgabe in MySQL zurückzugeben, können Sie die Anweisung CASE verwenden, um Bedingungen für jede Zelle zu definieren und GROUP BY verwenden, um die Daten nach Firmennamen zu sortieren.

Das Folgende ist die SQL-Anweisung für das bereitgestellte Beispiel:

<code class="language-sql">SELECT  P.`company_name`,
    COUNT(
        CASE 
            WHEN P.`action`='EMAIL' 
            THEN 1 
            ELSE NULL 
        END
    ) AS 'EMAIL',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '1' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 1 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '2' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 2 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '3' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 3 pages'
FROM    test_pivot P
GROUP BY P.`company_name`;</code>
Nach dem Login kopieren

Diese Abfrage gibt das gewünschte Pivot-Tabellenformat aus.

Wichtiger Hinweis

  • Für größere Tabellen mit mehr Operations-/Seitenkombinationen erfordert die SQL-Anweisung mehr CASE-Bedingungen.
  • Um dynamischen Bedingungen Rechnung zu tragen, können Sie vorbereitete Anweisungen oder Routinen verwenden.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Pivot-Tabellenausgabe mithilfe von MySQL-Abfragen?. 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