Oracle SQL语句中按唯一ID的多个列的总和

car*_*nas 2 sql oracle sum unique multiple-columns

我有一个members_id和Flags的表.我想总结一下member_id有多少个标志(如下所示).我有大约19个标志,在标志字段中可以有1或0.所以基本上我想总结每个Member_Id每列中的1

Member_Id | Flag2| Flag3| Flag4|Flag5|Flag6|Flag7|Flag8|
999999b     1        0      0    0     1       1      1    
777777a     0        1      1    0     1       0      0
Run Code Online (Sandbox Code Playgroud)

期望的结果

Member_Id |  Total
999999b        4
777777a        3
Run Code Online (Sandbox Code Playgroud)

Luk*_*zda 5

你可以使用:

SELECT Member_id, Flag1+Flag2+...+ Flag19 AS total
FROM tab;
Run Code Online (Sandbox Code Playgroud)

如果任何列可以为空,则必须通过以下方式处理它COALESCE:

SELECT Member_id, COALESCE(Flag1,0) + COALESCE(Flag2,0) + ...
FROM tab;
Run Code Online (Sandbox Code Playgroud)