如何解决大查询-将数组转置为列
我们在Big Query中有一个表格,如下所示。
输入表:
Name | Interests
-----+----------
Bob | ["a"]
Sue | ["a","b"]
Joe | ["b","c"]
我们希望将上表转换为以下格式,使其对BI /可视化友好。
目标/必需表:
+------------------+
| Name | a | b | c |
+------------------+
| Bob | 1 | 0 | 0 |
| Sue | 1 | 1 | 0 |
| Joe | 0 | 1 | 0 |
+------------------+
注意:兴趣列是数组数据类型。 Big Query可能进行这种转换吗?如果是,是否有任何参考查询?
谢谢!
解决方法
以下内容适用于BigQuery Standard SQL,并使用BQ的脚本功能
#standardSQL
create temp table ttt as (
select name,interest
from `project.dataset.table`,unnest(interests) interest
);
EXECUTE IMMEDIATE (
SELECT """
SELECT name,""" ||
STRING_AGG("""MAX(IF(interest = '""" || interest || """',1,0)) AS """ || interest,',')
|| """
FROM ttt
GROUP BY name
"""
FROM (
SELECT DISTINCT interest
FROM ttt
ORDER BY interest
)
);
如果要应用于您的问题的样本数据-输出为
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。