Google BigQuery创建透视表遇类型不匹配错误求助
解决BigQuery透视表PIVOT类型不匹配错误
错误原因
你写的PIVOT语句里,IN列表里的项用了[1]这种数组格式,但BigQuery要求IN中的值必须和FOR子句指定的cohort_index字段类型(INT64)完全一致,数组类型和INT64不兼容,所以触发了这个错误。
修正后的SQL代码
把IN列表里所有的[数字]改成纯数字即可,修正后的代码如下:
--- Pivot data to see the cohort table. SELECT * FROM ( SELECT DISTINCT emailAddress, Cohort_Date, cohort_index FROM `nexgen-362616.orders.cohort_retention` )tbl pivot( Count(emailAddress) for cohort_index in ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ) ) as pivot_table
补充说明
从你的表结构可以看到cohort_index是INTEGER类型(对应BigQuery的INT64),所以直接在IN列表里写整数数值就符合类型要求,不需要额外做类型转换。执行修正后的代码就能生成你需要的同期群透视表了。
内容的提问来源于stack exchange,提问作者SwimJim
相关产品推荐
相关产品推荐

