Heim >Datenbank >MySQL-Tutorial >Wie kann man Daten in MySQL effizient vom Lang- ins Breitformat umformen?

Wie kann man Daten in MySQL effizient vom Lang- ins Breitformat umformen?

DDD
DDDOriginal
2024-12-29 01:40:10557Durchsuche

How to Efficiently Reshape Data from Long to Wide Format in MySQL?

Umformen von Daten vom langen ins breite Format in MySQL

Einführung:

Umformen von Daten aus einem langen (hohen) Format Bei der Bearbeitung von Daten kann die Umstellung auf ein Breitformat erforderlich sein. MySQL bietet Funktionen, mit denen Sie diesen Vorgang ausführen können, ohne auf externe Skriptsprachen angewiesen zu sein.

Erstellen der Wide Format-Tabelle:

  1. Der erste Schritt besteht darin, eine Liste aller eindeutigen Schlüssel zu erhalten, die in der Langformattabelle vorhanden sind:

    SELECT DISTINCT key FROM table;
  2. Verwenden die erhaltenen Schlüssel, um eine neue Tabelle mit der gewünschten Breitformatstruktur zu erstellen:

    CREATE TABLE wide_table (
        country VARCHAR(255),
        key1 VARCHAR(255),
        key2 VARCHAR(255),
        ...,
        keyN VARCHAR(255)
    );

Ausfüllen der Tabellenwerte:

  1. Fügen Sie abschließend die Daten mithilfe von Kreuztabellen in die Breitformattabelle ein Abfrage:

    INSERT INTO wide_table (
        country,
        key1,
        key2,
        ...,
        keyN
    )
    SELECT
        country,
        MAX(IF(key = 'key1', value, NULL)) AS key1,
        MAX(IF(key = 'key2', value, NULL)) AS key2,
        ...,
        MAX(IF(key = 'keyN', value, NULL)) AS keyN
    FROM table
    GROUP BY country;

Beispiel:

Betrachten Sie die Langformat-Eingabetabelle:

country attrName attrValue key
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan 5

Verwenden Sie das oben Gesagte Schritte können wir die Daten in ein Breitformat umwandeln:

Breitformat Ausgabe:

country President Currency
US Obama Dollar
China Hu Yuan

Vorteile der Verwendung von SQL:

  • Effizienz: SQL-Abfragen sind für Datenbankoperationen optimiert, Minimierung der Verarbeitungszeit.
  • Deklarativ: Mit SQL können Sie ausdrücken die gewünschte Transformation auf prägnante und lesbare Weise.
  • Portabilität: SQL-Abfragen können über verschiedene MySQL-Datenbanken hinweg ausgeführt werden, wodurch Kompatibilität ohne Änderungen gewährleistet ist.
  • Wartbarkeit: Sobald die SQL-Abfrage entwickelt ist, kann sie bei Bedarf einfach gepflegt und geändert werden.

Das obige ist der detaillierte Inhalt vonWie kann man Daten in MySQL effizient vom Lang- ins Breitformat umformen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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