为具有相同类型值的多个列选择查询

时间:2018-05-19 01:05:33

标签: database sqlite

我有一个数据库,我用这样的方式将整数存储在列中 1 1 1 1
1 1 1 1
1 0 1 0
0 1 2 2

所以我想得到值为1的每列的数量。
我会非常感激:)。

我尝试过使用很多查询,但我不知道如何以这种方式工作 我也检查了堆栈流量和许多其他网站,但不知何故,我仍然坚持这个问题。我也尝试过使用IN子句。

我尝试过使用OR和AND来使用select语句,但我知道这不会起作用,并且会产生不正确的结果。

1 个答案:

答案 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
)