如何计算此查询?

时间:2011-06-29 07:32:14

标签: mysql sql sqlite

我有一个包含以下列的表:

ListID----           Status

1---------             YES

2---------             YES

3----------             NO 

我想编写一个SQL语句,它将返回状态为“YES”的每个ListID列的计数。

如何创建此SQL语句,以便在Count中将ListID 3作为0?

请告诉我。

5 个答案:

答案 0 :(得分:2)

使用MySQL IF-function

如果状态为是,请计算字段。否则不计算(0)。

SELECT ListID, SUM(IF(Status="YES",1,0)) 
FROM yourtable
GROUP BY `ListID`

查看以前的答案:Get paid cash amount grouped by day

答案 1 :(得分:1)

尝试这个

SELECT ListID, SUM(decode(Status,'YES',1,0))  
FROM yourtable 
GROUP BY ListID

答案 2 :(得分:0)

你可以使用这个技巧:

说YES是1而NO是0 然后只是按listId进行SUM(状态)分组。

答案 3 :(得分:0)

这就足够了SQL92语句:

SELECT ListId, COUNT(*)
  FROM table
 GROUP BY ListId, Status
HAVING Status = 'Yes'

答案 4 :(得分:0)

select status, count(ListID) 
from tablename
group by status