Il n'y a pas encore de bonne façon de faire cela dans BigQuery, mais vous pouvez le faire en suivant l'idée ci-dessous
Étape 1
Exécuter la requête ci-dessous
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]
)
En conséquence - vous obtiendrez une chaîne comme ci-dessous (elle est formatée ci-dessous pour des raisons de lisibilité)
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]
Étape 2
Exécutez juste au-dessus de la requête composée
Le résultat sera comme ci-dessous
group d_date1 d_date2
group1 15 30
Remarque 1 :L'étape 1 est utile si vous avez de nombreux groupes pour faire pivoter trop de travail manuel. Dans ce cas, l'étape 1 vous aide à générer votre requête
Remarque 2 :ces étapes sont facilement implémentées dans n'importe quel client de votre choix ou vous pouvez simplement les exécuter dans l'interface utilisateur Web de BigQuery
Vous pouvez en savoir plus sur le pivotement dans mes autres articles.
Comment faire évoluer Pivoting dans BigQuery ?
Veuillez noter qu'il existe une limite de 10 000 colonnes par table. Vous êtes donc limité à 10 000 organisations.
Vous pouvez également voir ci-dessous des exemples simplifiés (si l'un d'entre eux est trop complexe/verbeux) :
Comment transposer des lignes en colonnes avec une grande quantité de données dans BigQuery/SQL ?
Comment créer des colonnes de variables factices pour des milliers de catégories dans Google BigQuery ?
Faire pivoter les champs répétés dans BigQuery