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
这个问题可能会产生误导,我可以在这里解释这个问题:
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