【问题标题】:Coalesce across the ID to retrieve Name跨 ID 合并以检索名称
【发布时间】:2022-10-24 17:51:18
【问题描述】:
ID Name Count
1 John 1
1 NULL 10
2 Sam 11
3 Mike 13
3 NULL 15
4 Tom 80
5 Null 90
5 Clare 10
6 NULL 10

我在 SQL/BigQuery 中寻找的输出

ID Name Count
1 John 11
2 Sam 11
3 Mike 28
4 Tom 80
5 Clare 100
6 NULL 10

我认为涉及到一个 COALESCE 功能,但不知道如何处理这个问题。

如果有一个 NULL 名称,我希望添加计数列 + 删除 NULL 名称

【问题讨论】:

    标签: sql google-bigquery


    【解决方案1】:

    COALESCE(a,b) 是将几列 ab 组合成一个非空条目。

    你想要any_valuemax 函数和group by id

    with tbl as (select 1 id,"John" name,   1 count
    union all select 1  ,NULL,  10
    union all select 2  ,"Sam", 11
    union all select 3  ,"Mike",    13
    union all select 3, NULL,   15
    union all select 4  ,"Tom", 80
    union all select 5  ,Null,  90
    union all select 5  ,"Clare",   10
    union all select 6  ,NULL,  10)
    select id, max(name),sum(count) as counts
    from tbl
    group by id
    

    【讨论】:

      【解决方案2】:

      SELECT ID, Name, Count, MAX(Name) OVER(PARTITION BY ID) AS New_Name_Column

      从表

      按 1,2,3 分组

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-26
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多