In MySQL müssen Sie möglicherweise die Perspektiventabelle sehen und die Linie in Spalten umwandeln. Dies ist besonders nützlich, wenn Sie Daten in verschiedene Richtungen darstellen müssen. Obwohl MySQL selbst keine Drehfunktionen liefert, gibt es verschiedene Möglichkeiten, diese Aufgabe zu erledigen.
Herausforderung: Dynamische Perspektive Tabelle
Angenommen, Sie haben drei Tabellen: Produkttabelle, Partnertabelle und Verkaufstabelle. Sie müssen eine Tabelle erstellen, die auf Partnern, Produkten basiert und die Verkäufe für jedes Portfolio berechnet.
Eine Methode besteht darin, eine Polymerfunktion mit einer Fallanweisung zu verwenden. Durch das Erstellen mehrerer Fallanweisungen können Sie die Verkäufe jedes Produkt- und Gruppenergebnisses gemäß dem Partnernamen berechnen.
Verwenden Sie Vorbearbeitungsanweisungen, um eine dynamische Perspektive zu erhalten
<code class="language-sql">SELECT pt.partner_name, COUNT(CASE WHEN pd.product_name = 'Product A' THEN 1 END) AS ProductA, COUNT(CASE WHEN pd.product_name = 'Product B' THEN 1 END) AS ProductB, COUNT(CASE WHEN pd.product_name = 'Product C' THEN 1 END) AS ProductC, COUNT(CASE WHEN pd.product_name = 'Product D' THEN 1 END) AS ProductD, COUNT(CASE WHEN pd.product_name = 'Product E' THEN 1 END) AS ProductE FROM partners pt LEFT JOIN sales s ON pt.part_id = s.partner_id LEFT JOIN products pd ON s.product_id = pd.prod_id GROUP BY pt.partner_name;</code>
Einschränkungen und Vorsichtsmaßnahmen
Es ist zu beachten, dass
<code class="language-sql">SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COUNT(CASE WHEN Product_Name = ''', Product_Name, ''' THEN 1 END) AS ', REPLACE(Product_Name, ' ', '') ) ) INTO @sql FROM products; SET @sql = CONCAT('SELECT pt.partner_name, ', @sql, ' FROM partners pt LEFT JOIN sales s ON pt.part_id = s.partner_id LEFT JOIN products pd ON s.product_id = pd.prod_id GROUP BY pt.partner_name'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;</code>
verwenden, um die Grenze zu erhöhen.
Das obige ist der detaillierte Inhalt vonWie kann man Tabellen in MySQL dynamisch Pivotieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!