我有一个包含以下列的表:
ListID---- Status
1--------- YES
2--------- YES
3---------- NO
我想编写一个SQL语句,它将返回状态为“YES”的每个ListID列的计数。
如何创建此SQL语句,以便在Count中将ListID 3作为0?
请告诉我。
答案 0 :(得分:2)
如果状态为是,请计算字段。否则不计算(0)。
SELECT ListID, SUM(IF(Status="YES",1,0))
FROM yourtable
GROUP BY `ListID`
答案 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