我有一张桌子,我设法将其缩小到这个范围:
Event | Response
------------ | ------
Birthday | Yes
Anniversary | No
Anniversary | No
Birthday | Yes
Birthday | Yes
我想算一下“是”的数字。对每个事件的回复,所以最终产品应该是:
Event | numYes
------------ | ------
Birthday | 3
Anniversary | 0
我认为它使用group by Event
和Response = 'yes'
的聚合器,但我不确定如何使其工作
答案 0 :(得分:2)
试试这个:
select event, sum(Response = 'Yes') numYes
from your_table
group by event;
它使用的事实是,在MySQL中,true为1,false为0,导致表达式缩短。
实现同样目标的另一种方法是使用COUNT
这样:
select event, count(case when Response = 'Yes' then 1 end) numYes
from your_table
group by event;
答案 1 :(得分:1)
尝试:
SELECT Event, SUM(Response='Yes') numYes
FROM tablename
GROUP BY Event
将选择Event列并对该事件的Response ='Yes'的所有行求和,并将结果放在名为“numYes”的列中。然后按事件分组以获取每个事件的唯一实例。