【发布时间】:2021-01-12 17:48:54
【问题描述】:
我的数据看起来像:
| row | col1 | col2 | col3 | ... | coln |
|---|---|---|---|---|---|
| 1 | A | null | B | ... | null |
| 2 | null | B | C | ... | D |
| 3 | null | null | null | ... | A |
我想将列压缩在一起得到:
| row | final |
|---|---|
| 1 | A, B |
| 2 | B, C, D |
| 3 | A |
字母的顺序无关紧要,如果解决方案包含空值,例如。 A,null,B,null 等。我可以研究如何稍后删除它们。我已经用完了 coln,因为我有大约 200 列要压缩。
我已经尝试了一些方法,如果我想压缩行,我可以使用 STRING_AGG() example
另外我可以这样做:
SELECT
CONCAT(col1,", ",col2,", ",col3,", ",coln) #ect.
FROM mytable
但是,这将涉及手动写出每个列名,这是不可行的。有没有更好的方法可以理想地为整个表实现这一目标。
另外,如果任何值为 NULL,CONCAT 会返回 NULL。
【问题讨论】:
标签: google-bigquery