我有一张表,里面有不同仓库列的库存。 我需要找出符合以下条件的记录。它是一个mysql数据库。
计算多列总和等于0的记录数。
表的结构
Stock A | Stock B | Stock C | Stock D
0 | 1 | 0 | 0
0 | 0 | 0 | 0
1 | 1 | 1 | 1
此处输出为1。
答案 0 :(得分:0)
这应该很简单:
create table test (stock_a int, stock_b int, stock_c int, stock_d int);
insert into test values (0,1,0,0), (0,0,0,0), (1,1,1,1);
select count(*) from test where stock_a + stock_b + stock_c + stock_d = 0
Result:
count(*)
--------
1
答案 1 :(得分:0)
多个列的总和在where子句中,因此Count(1)仅计算所有字段的summ为零的位置。
Select Count(1) From warehouse
Where (`Stock A` + `Stock B` + `Stock C` + `Stock D`) = 0
答案 2 :(得分:0)
我认为你在yourtable中没有负面价值,那么你可以这样做:
SELECT COUNT(*) As cnt
FROM yourtable
WHERE (Stock_A, Stock_B, Stock_C, Stock_D) = (0, 0, 0, 0)