Heim >Datenbank >MySQL-Tutorial >Wie kann der UNPIVOT-Operator von BigQuery Tabellendaten umstrukturieren?

Wie kann der UNPIVOT-Operator von BigQuery Tabellendaten umstrukturieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 01:48:09407Durchsuche

How Can BigQuery's UNPIVOT Operator Restructure Tabular Data?

Transponieren von Daten in BigQuery mit dem UNPIVOT-Operator

Die Neuorganisation von Daten von einer tabellarischen Struktur in ein flexibleres und benutzerfreundlicheres Format ist oft erforderlich. In BigQuery bietet der UNPIVOT-Operator eine leistungsstarke Lösung für diese Transformation.

Betrachten Sie das folgende Beispiel:

Ursprüngliche Tabellenstruktur:

product Q1 Q2 Q3 Q4
Kale 51 23 45 3
Apple 77 0 25 2

Gewünschte Tabellenstruktur:

product sales quarter
Kale 51 Q1
Kale 23 Q2
Kale 45 Q3
Kale 3 Q4
Apple 77 Q1
Apple 0 Q2
Apple 25 Q3
Apple 2 Q4

SQL Abfrage mit UNPIVOT:

SELECT product, value AS sales, OFFSET AS quarter
FROM UNNEST(FLATTEN(
  ARRAY(
    STRUCT('Q1' AS OFFSET, Q1 AS value),
    STRUCT('Q2' AS OFFSET, Q2 AS value),
    STRUCT('Q3' AS OFFSET, Q3 AS value),
    STRUCT('Q4' AS OFFSET, Q4 AS value)
  )
)) AS UNNESTED
ORDER BY product, quarter;

Diese Abfrage verwendet die Funktionen ARRAY und STRUCT, um ein temporäres Array von Strukturen für jede Zeile in der Originaltabelle zu erstellen. Anschließend wird die Funktion FLATTEN verwendet, um die Strukturfelder (Umsatz und Quartal) aus jeder Struktur im Array zu extrahieren. Abschließend wird der UNNEST-Operator verwendet, um die einzelnen Werte aus dem ARRAY zu extrahieren.

Die resultierende Tabelle hat das gewünschte Format, mit Spalten für Produkt, Umsatz und Quartal.

Das obige ist der detaillierte Inhalt vonWie kann der UNPIVOT-Operator von BigQuery Tabellendaten umstrukturieren?. 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