Heim > Datenbank > MySQL-Tutorial > Wie kann ich in BigQuery Zeilen in Spalten umwandeln?

Wie kann ich in BigQuery Zeilen in Spalten umwandeln?

Mary-Kate Olsen
Freigeben: 2025-01-03 22:16:40
Original
299 Leute haben es durchsucht

How to Pivot Rows into Columns in BigQuery?

Pivot-Transformation in BigQuery: Zeilen in Spalten transponieren

Problem:

Das Ziel ist um Daten in BigQuery von Zeilen in Spalten umzuwandeln, wobei die Schlüssel zu Spaltennamen und die Werte zur entsprechenden Spalte werden Werte.

Beispiel:

Vorher:

Key Value
channel_title Mahendra Guru
youtube_id ugEGMG4-MdA
examId 72975611-4a5e-11e5
channel_id UCiDKcjKocimAO1tV
postId 1189e340-b08f

Nachher:

channel_title youtube_id channel_id examId postId
Mahendra Guru ugEGMG4-MdA UCiDKcjKocimAO1tV 72975611-4a5e-11e5 1189e340-b08f

Lösung:

BigQuery fehlen derzeit native Pivoting-Funktionen. Der folgende Ansatz kann jedoch das gleiche Ergebnis erzielen:

Schritt 1: Abfragestruktur generieren

SELECT 'SELECT id, ' + 
   GROUP_CONCAT_UNQUOTED(
      'MAX(IF(key = "' + key + '", value, NULL)) as [' + key + ']'
   ) 
   + ' FROM yourTable GROUP BY id ORDER BY id'
FROM (
  SELECT key 
  FROM yourTable
  GROUP BY key
  ORDER BY key
)
Nach dem Login kopieren

Schritt 2: Abfrage ausführen und transformieren

  • Führen Sie die generierte Abfrage aus Schritt 1 aus.
  • Kopieren Sie die Ergebnis und formatieren Sie es wie folgt (Formatierung ist nicht erforderlich):
SELECT 
  id, 
  MAX(IF(key = "channel_id", value, NULL)) AS [channel_id],
  MAX(IF(key = "channel_title", value, NULL)) AS [channel_title],
  MAX(IF(key = "examId", value, NULL)) AS [examId],
  MAX(IF(key = "postId", value, NULL)) AS [postId],
  MAX(IF(key = "youtube_id", value, NULL)) AS [youtube_id] 
FROM yourTable 
GROUP BY id 
ORDER BY id
Nach dem Login kopieren
  • Führen Sie die transformierte Abfrage aus.

Überlegungen:

  • Sie können Schritt 1 überspringen, wenn Sie die Abfrage in Schritt manuell erstellen können 2.
  • Es gibt eine Beschränkung auf 10.000 Spalten pro Tabelle. Erwägen Sie daher eine Skalierung für größere Datensätze.

Das obige ist der detaillierte Inhalt vonWie kann ich in BigQuery Zeilen in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage