BigQuery如何实现Pivot两行转列:以col_2值为列名聚合col3、col4
解决方案
你当前的PIVOT语句仅对col_3做了单列聚合,要同时提取col_3、col_4两个字段的对应值,只需在PIVOT子句中定义两个聚合函数并指定列后缀即可,完整查询如下:
SELECT ID, col_1, `A_col3`, `A_col4`, `B_col3`, `B_col4` FROM ( SELECT ID, col_1, col_2, col_3, col_4 FROM tableA ) PIVOT ( MAX(col_3) AS col3, MAX(col_4) AS col4 FOR col_2 IN ('A', 'B') ) ORDER BY ID
说明
- BigQuery的PIVOT语法支持同时指定多个聚合函数,会自动按照「
col_2取值_聚合函数后缀」的规则生成新列名,和你需要的输出结构完全匹配。 - 若同一
ID+col_1+col_2组合下存在多行重复数据,可根据业务需求将MAX替换为MIN、ANY_VALUE等其他聚合函数。
内容的提问来源于stack exchange,提问作者16143
相关产品推荐
相关产品推荐

