组合多行以获取 BigQuery 中的值



我遇到了类似于下表的问题

id         phonenumber    email          name 
A0001       123456789     null           null
A0001          null       abc@xyz.com   null
A0001          null       null           Adam

我想知道是否有办法将所有行合并为 1 并将非空行中的值合并为一行 这是我正在寻找的结果

id         phonenumber    email          name 
A0001       123456789     abc@xyz.com   Adam

可能最简单的方法是这样的:

with data as (
select 'A0001' as id, 123456789 as phonenumber, null as email, null as name union all
select 'A0001', null, 'abc@xyz.com', null union all
select 'A0001', null, null, 'Adam'
)
select id, max(phonenumber) as phonenumber, max(email) as email, max(name) as name
from data
group by 1

例如,如果您的表有多行,每个 id 具有不同的电话号码,则可能无法获得预期的结果。

相关内容

  • 没有找到相关文章

最新更新