我有一个数据库,我用这样的方式将整数存储在列中
1 1 1 1
1 1 1 1
1 0 1 0
0 1 2 2
所以我想得到值为1的每列的数量。
我会非常感激:)。
我尝试过使用很多查询,但我不知道如何以这种方式工作 我也检查了堆栈流量和许多其他网站,但不知何故,我仍然坚持这个问题。我也尝试过使用IN子句。
我尝试过使用OR和AND来使用select语句,但我知道这不会起作用,并且会产生不正确的结果。
答案 0 :(得分:0)
这取决于你的意思。如果您想计算值1在表格中出现的次数,可以使用count(*)
:
select
(select count(*) from myTable where col1 = 1) +
(select count(*) from myTable where col2 = 1) +
(select count(*) from myTable where col3 = 1) +
[...]
或者你可以使用case
表达式:
select sum(*) from (
select
(case when col1 = 1 then 1 else 0 end) +
(case when col2 = 1 then 1 else 0 end) +
(case when col3 = 1 then 1 else 0 end)
from myTable
)