Na razie nie ma fajnego sposobu na zrobienie tego w BigQuery, ale możesz to zrobić zgodnie z poniższym pomysłem
Krok 1
Uruchom poniżej zapytanie
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]
)
W rezultacie - otrzymasz ciąg jak poniżej (jest sformatowany poniżej ze względu na czytelność)
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]
Krok 2
Po prostu uruchom powyżej złożone zapytanie
Wynik będzie taki jak poniżej
group d_date1 d_date2
group1 15 30
Uwaga 1 :Krok 1 jest pomocny, jeśli masz wiele grup do przestawienia, więc zbyt dużo pracy ręcznej. W takim przypadku — krok 1 pomoże Ci wygenerować zapytanie
Uwaga 2 :te kroki można łatwo zaimplementować w dowolnym wybranym przez Ciebie kliencie lub po prostu uruchomić je w internetowym interfejsie użytkownika BigQuery
Możesz dowiedzieć się więcej o przechylaniu w innych moich postach.
Jak skalować Pivoting w BigQuery?
Uwaga – istnieje ograniczenie do 10 tys. kolumn na tabelę – więc jesteś ograniczony do 10 tys. organizacji.
Możesz również zobaczyć poniżej jako uproszczone przykłady (jeśli powyższy jest zbyt złożony/pełny):
Jak transponować wiersze do kolumn z dużą ilością danych w BigQuery/SQL?
Jak utworzyć fałszywe kolumny zmiennych dla tysięcy kategorii w Google BigQuery?
Przestaw powtarzane pola w BigQuery