帮助sql查询

时间:2010-07-09 06:07:03

标签: sql

我的数据库中有名称样本表,它有三个列,即单词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查询这个请帮助提前谢谢。

2 个答案:

答案 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位于不同的行中,并且根本与该行无关。