Pivot-Tabellen sind für die Datenzusammenfassung von unschätzbarem Wert, da sie es Ihnen ermöglichen, Daten über mehrere Dimensionen hinweg zu aggregieren. Diese Anleitung zeigt, wie Sie Pivot-Tabellen in MySQL mithilfe von CASE
-Anweisungen und GROUP BY
.
Anschauliches Beispiel:
Betrachten Sie diese Beispiel-MySQL-Tabelle:
company_name | action | pagecount |
---|---|---|
Company A | 3 | |
Company A | 2 | |
Company A | 3 | |
Company B | NULL | |
Company B | 2 | |
Company B | 2 | |
Company B | 1 | |
Company A | 3 |
Die folgende SQL-Abfrage erstellt aus diesen Daten eine Pivot-Tabelle:
<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>
Diese Abfrage ergibt die folgende Pivot-Tabelle:
company_name | PRINT 1 pages | PRINT 2 pages | PRINT 3 pages | |
---|---|---|---|---|
CompanyA | 0 | 0 | 1 | 3 |
CompanyB | 1 | 1 | 2 | 0 |
Weiteres Lernen:
Für ein tieferes Verständnis der MySQL-Pivot-Tabellen erkunden Sie diese Ressourcen:
Das obige ist der detaillierte Inhalt vonWie erstelle ich Pivot-Tabellen in MySQL mit CASE-Anweisungen und GROUP BY?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!