首页 > 解决方案 > Oracle SQL 语句中多列的总和(按唯一 ID)

问题描述

我有一个 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

期望的结果

Member_Id |  Total
999999b        4
777777a        3

标签: sqloraclesumuniquemultiple-columns

解决方案


你可以使用:

SELECT Member_id, Flag1+Flag2+...+ Flag19 AS total
FROM tab;

如果任何列可以为空,则必须处理它,例如使用COALESCE

SELECT Member_id, COALESCE(Flag1,0) + COALESCE(Flag2,0) + ...
FROM tab;

推荐阅读