我的数据库中有名称样本表,它有三个列,即单词D1,D2和 它有一些数据如下
Words D1 D2 D3 pleasure 1 0 1 question 0 0 0 answer 0 1 1 request 1 0 0 scount 1 0 0
所以现在我想计算参数N00,这意味着scount = 0,并且它应该检查D1和D2中0的位置,所以这里的“问题”D1 = 0 D2 = 0和scount = 0所以结果应该是2因为scount = 0和D1 = 0,scount = 0和D2 = 0这两个都满足所以结果是2我需要sql查询这个请帮助提前谢谢。
答案 0 :(得分:2)
如果我正确阅读你想知道scount = 0且D1或D2 = 0有多少条记录,那就是这样的查询:
SELECT COUNT(*) as N00 FROM mytable WHERE scount = 0 AND (D1 = 0 OR D2 = 0)
第二次通过我认为你正在尝试计算条件满足,即当D1 = 0时+1,当D2 = 0时+1,但只有当scount = 0时,这是这样的:
SELECT (IF(D1=0,1,0)+IF(D2=0,1,0)) as N00 WHERE scount = 0
答案 1 :(得分:0)
你的问题没有加起来。您的行为就像scount是一列,但它是一行。而你的问题没有意义。您是否可以在以下单独案例中将其拆分:
A: (D1 = 0) AND (D2 = 0) -> N00 = X
B: (D1 = 0) AND (D2 = 1) -> N00 = Y
我不知道在这些情况下如何适应scount。你不能说以下:
C:(D1 = 0)AND(D2 = 0)AND(scount = 1) - > N00 = Z
这是不可能的,因为scount位于不同的行中,并且根本与该行无关。