Det finns inget bra sätt att göra detta i BigQuery än, men du kan göra det enligt nedanstående idé
Steg 1
Kör nedanstående fråga
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]
)
Som ett resultat - du kommer att få en sträng som nedan (den är formaterad nedan för läsbarhetens skull)
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]
Steg 2
Kör bara ovanstående fråga
Resultatet blir som nedan
group d_date1 d_date2
group1 15 30
Anmärkning 1 :Steg 1 är till hjälp om du har många grupper att vända så för mycket av manuellt arbete. I det här fallet - Steg 1 hjälper dig att generera din fråga
Anmärkning 2 :dessa steg är lätta att implementera i valfri klient eller så kan du bara köra dem i BigQuery Web UI
Du kan se mer om pivotering i mina andra inlägg.
Hur skalar man pivotering i BigQuery?
Observera – det finns en begränsning på 10 000 kolumner per tabell - så du är begränsad med 10 000 organisationer.
Du kan även se nedan som förenklade exempel (om en ovan är för komplex/omfattande):
Hur överför man rader till kolumner med stora mängder data i BigQuery/SQL?
Hur skapar man dummy-variabelkolumner för tusentals kategorier i Google BigQuery?
Pivota upprepade fält i BigQuery