Umformen von Daten vom Lang- ins Breitformat in MySQL
In MySQL werden Daten häufig in einem Lang- oder Hochformat mit mehreren Attributen gespeichert werden in separaten Zeilen für dieselbe Entität gespeichert. Für Analyse- und Berichtszwecke kann es jedoch praktischer sein, die Daten in einem breiten Format zu haben, in dem jede Zeile eine Entität und jede Spalte ein Attribut darstellt.
Kann MySQL zum Konvertieren von Daten im Langformat verwendet werden? ins Breitformat ohne externes Scripting? Ja, das ist mit den leistungsstarken Pivot-Tabellenfunktionen von MySQL möglich.
Erstellen der breiten Tabelle
Liste der Schlüssel abrufen: Rufen Sie mithilfe einer Abfrage alle eindeutigen Schlüssel ab, die in der Langformattabelle vorhanden sind wie:
SELECT DISTINCT key FROM table;
Eingeben der Tabellenwerte
Verwenden Sie a Kreuztabellenabfrage zum Ausfüllen der Werte in der breiten Tabelle. Die folgende Abfrage veranschaulicht dies:
SELECT country, MAX(IF(key='President', value, NULL)) AS President, MAX(IF(key='Currency', value, NULL)) AS Currency, ... -- Add other key-value pairs as needed FROM table GROUP BY country;
Diese Abfrage überprüft jede Zeile in der langen Tabelle und gibt nur den neuesten Wert für jedes Schlüssel-Wert-Paar für dieses Land zurück. Die MAX-Funktion mit der IF-Bedingung stellt sicher, dass der aktuellste Wert erhalten bleibt.
Zum Beispiel würden die in der Frage bereitgestellten Eingabedaten in den folgenden Wide umgewandelt Format:
Eingabe:
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
Ausgabe:
country | President | Currency |
---|---|---|
US | Obama | Dollar |
China | Hu | Yuan |
Schlussfolgerung
Mit MySQL-Pivot-Tabellen ist es einfach, Daten vom Lang- ins Breitformat umzuwandeln und so mehr zu erreichen geeignet für Analyse und Reporting. Diese Methode ist effizient und kann auf Tabellen mit beliebig vielen Attributen angewendet werden.
Das obige ist der detaillierte Inhalt vonKann MySQL Daten im Langformat ohne externe Skripte in Breitformat umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!