BigQuery noch nicht unterstützt Funktionen Schwenken
Sie können immer noch das tun in BigQuery unter Ansatz
Aber zuerst müssen Sie eine weitere Säule neben zwei Spalten in die Dateneingabe, die Gruppen von Zeilen angeben würde in Eingang, die in einer Zeile in der Ausgabe
, gehe ich davon aus So
kombiniert werden muss, sieht Ihre Eingabetabelle (Yourtable) wie unten
**id** **Key** **Value**
1 channel_title Mahendra Guru
1 youtube_id ugEGMG4-MdA
1 channel_id UCiDKcjKocimAO1tV
1 examId 72975611-4a5e-11e5
1 postId 1189e340-b08f
2 channel_title Ab Live
2 youtube_id 3TNbtTwLY0U
2 channel_id UCODeKM_D6JLf8jJt
2 examId 72975611-4a5e-11e5
2 postId 0c3e6590-afeb
Also, zuerst sollten Sie laufen unter Abfrage
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
)
Ergebnis obiger Abfrage wird Zeichenfolge sein, dass (wenn zum Format) wie unten
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
Sie jetzt oben Ergebnis (Note kopieren aussehen sollten: Sie müssen nicht wirklich formatiert werden müssen es - ich habe es nur für die Darstellung) und als normale Abfrage
Ergebnis führen wird, wie Sie
id channel_id channel_title examId postId youtube_id
1 UCiDKcjKocimAO1tV Mahendra Guru 72975611-4a5e-11e5 1189e340-b08f ugEGMG4-MdA
2 UCODeKM_D6JLf8jJt Ab Live 72975611-4a5e-11e5 0c3e6590-afeb 3TNbtTwLY0U
erwartet hätte
Hinweis: Sie können Schritt 1 überspringen, wenn Sie die richtige Abfrage (wie in Schritt 2) selbst erstellen können und die Anzahl der Felder klein und konstant ist oder wenn es sich um eine einmalige Transaktion handelt. Aber Schritt 1 nur Helfer Schritt, der es für Sie macht, so können Sie es jederzeit schnell erstellen!
Wenn Sie interessiert sind - können Sie mehr über das Pivotieren in meinen anderen Posts sehen.
How to scale Pivoting in BigQuery?
Bitte beachten Sie - es ist eine Beschränkung von 10K Spalten pro Tabelle - so sind Sie mit 10K Organisationen beschränkt.
Sie können im Folgenden auch als vereinfachte Beispiele sehen (wenn oben ist zu komplex/ausführlich):
How to transpose rows to columns with large amount of the data in BigQuery/SQL?
How to create dummy variable columns for thousands of categories in Google BigQuery?
Pivot Repeated fields in BigQuery
, dass der Trick funktioniert. – Prabhjot