根据条件SQL每行执行总和

时间:2018-11-26 19:51:17

标签: sql vba ms-access

我想知道如何使用SQL根据列的条件对每行求和(我是SQL的新手)。

例如,我有这张桌子:

ID  Col_1  Col_2  Col_3 ...  
1     L      L      L   ...  
2     L      Q      Q   ... 
3     L      L      Q   ... 
4     Q      Q      L   ... 

我正在寻找的结果是:

ID  count_L  count_Q
1     3        0
2     1        2
3     2        1
4     1        2

我不确定该如何处理。如果我的表已转置,使用Count函数执行此操作会更容易(我认为),但是以我的数据组织方式执行查询对我来说很棘手。我认为我需要嵌套的SQL语句并使用UNION将它们加入,但不确定如何执行。

我在其他地方找不到类似的问题/解决方案。希望能有所帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用iif()+

select id,
       (iif(col_1 = "L" , 1, 0) + iif(col_2 = "L" , 1, 0) + iif(col_3 = "L" , 1, 0) ) as count_l,
       (iif(col_1 = "Q" , 1, 0) + iif(col_2 = "Q" , 1, 0) + iif(col_3 = "Q" , 1, 0) ) as count_q
from t;