SQL:如何为每个具有现有值的用户获取包含单个记录的结果集

SQL: How to get result set containing single record for each user with existing value

这个问题可能会产生误导,我可以在这里解释这个问题:

userId  col1    col2

001     null    null
001     1       null
002     1       1   
002     null    1
002     null    null
003     null    1
003     1       null

查询的最终结果

001     1   null
002     1   1
003     1   1

我在 table 中有用户的多条记录。有些列包含值,有些则不包含。我想要如上所示的最终结果。如果用户的任何行中的任何列都存在值,我希望最终结果集中有该值。

希望上面的例子能说明问题。

使用 group by aggregation with max:

select userId, max(col1) as c1, max(col2) as c2
     from userTbl
    group by userId