Non esiste ancora un bel modo per farlo in BigQuery, ma puoi farlo seguendo l'idea di seguito
Passaggio 1
Esegui sotto la query
SELECT 'SELECT [group], ' +
GROUP_CONCAT_UNQUOTED(
'SUM(IF([date] = "' + [date] + '", value, NULL)) as [d_' + REPLACE([date], '/', '_') + ']'
)
+ ' FROM YourTable GROUP BY [group] ORDER BY [group]'
FROM (
SELECT [date] FROM YourTable GROUP BY [date] ORDER BY [date]
)
Di conseguenza, otterrai una stringa come quella di seguito (è formattata di seguito per motivi di leggibilità)
SELECT
[group],
SUM(IF([date] = "date1", value, NULL)) AS [d_date1],
SUM(IF([date] = "date2", value, NULL)) AS [d_date2]
FROM YourTable
GROUP BY [group]
ORDER BY [group]
Passaggio 2
Basta eseguire sopra la query composta
Il risultato sarà come sotto
group d_date1 d_date2
group1 15 30
Nota 1 :Il passaggio 1 è utile se si dispone di molti gruppi su cui ruotare troppo il lavoro manuale. In questo caso, il passaggio 1 ti aiuta a generare la tua query
Nota 2 :questi passaggi sono facilmente implementabili in qualsiasi client di tua scelta oppure puoi eseguirli semplicemente nell'interfaccia utente Web di BigQuery
Puoi vedere di più sul pivoting nei miei altri post.
Come ridimensionare il pivoting in BigQuery?
Nota:c'è un limite di 10.000 colonne per tabella, quindi sei limitato con 10.000 organizzazioni.
Puoi anche vedere di seguito come esempi semplificati (se uno sopra è troppo complesso/prolisso):
Come trasporre righe in colonne con una grande quantità di dati in BigQuery/SQL?
Come creare colonne variabili fittizie per migliaia di categorie in Google BigQuery?
Pivot campi ripetuti in BigQuery