[英]How to pivot in BigQuery with unknow date range with dynamic SQL / scripting [duplicate]
我正在尝试使用 PIVOT 将我的数据从长格式转换为宽格式,但我不知道我有多少列(并且每天都在增加)。 在阅读了一些 stackoverflow 帖子后,我发现我需要使用动态 SQL 来完成它。 但是 Google BigQuery 的 SQL 语言略有不同。 我已经调试了很长时间,非常感谢您对此的任何帮助!
所以我的数据是这样的:
fips_code date count
53033 2020-03-04 6.4
53033 2020-03-05 7.6
53033 2020-03-06 9.0
53033 2020-03-07 11.4
6085 2020-03-04 2.4
6085 2020-03-05 3.4
6085 2020-03-06 4.4
6085 2020-03-07 5.1
我想把它改成
fips_code 2020-03-04 2020-03-05 2020-03-06 2020-03-07
53033 6.4 7.6 9.0 11.4
6085 2.4 3.4 4.4 5.1
我试图使用的代码是
DECLARE query STRING;
DECLARE date_range ARRAY<DATE>;
SET date_range = (SELECT DISTINCT date FROM `covid-atlas.covid_atlas_test.vaccine_fully_vaccinated_cdc` ORDER BY date DESC)
SET query = 'SELECT fips, date from `covid-atlas.covid_atlas_test.covid_confirmed_cdc`' PIVOT (sum(count) for date in date_range;
EXECUTE IMMEDIATE query
或者使用 GENERATE_DATE_ARRAY 函数:
SELECT *
FROM `covid-atlas.covid_atlas_test.vaccine_fully_vaccinated_cdc`
PIVOT (
SUM(count)
FOR date IN (GENERATE_DATE_ARRAY('2020-11-21', '2020-12-31', INTERVAL 1 DAY))
)
但他们都没有工作......我真的很感激任何帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.