繁体   English   中英

如何使用动态 SQL/脚本在未知日期范围的 BigQuery 中进行透视 [重复]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM