Ainda não há uma maneira legal de fazer isso no BigQuery, mas você pode fazer isso seguindo a ideia abaixo
Etapa 1
Executar abaixo da consulta
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]
)
Como resultado - você receberá uma string como abaixo (está formatada abaixo para facilitar a leitura)
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]
Etapa 2
Basta executar a consulta composta acima
Resultado será como abaixo
group d_date1 d_date2
group1 15 30
Observação 1 :O passo 1 é útil se você tiver muitos grupos para dinamizar tanto trabalho manual. Neste caso - o Passo 1 ajuda você a gerar sua consulta
Observação 2 :essas etapas são facilmente implementadas em qualquer cliente de sua escolha ou você pode executá-las na IU da Web do BigQuery
Você pode ver mais sobre pivotar em meus outros posts.
Como dimensionar a dinâmica no BigQuery?
Observe - há uma limitação de 10.000 colunas por tabela - portanto, você está limitado a 10.000 organizações.
Você também pode ver abaixo como exemplos simplificados (se acima for muito complexo/detalhado):
/>Como transpor linhas para colunas com grande quantidade de dados no BigQuery/SQL?
Como criar colunas de variáveis fictícias para milhares de categorias no Google BigQuery?
Pivot Repeated fields in BigQuery