Mysql 如何基于等于值的字符串属性的计数进行分组?

Mysql 如何基于等于值的字符串属性的计数进行分组?,mysql,sql,Mysql,Sql,我有一张桌子,我设法把它缩小到: Event | Response ------------ | ------ Birthday | Yes Anniversary | No Anniversary | No Birthday | Yes Birthday | Yes 我想计算每个事件的“是”回复数,因此最终产品应为: Event | numYes ------------ | ------ Birthday | 3 Annive

我有一张桌子,我设法把它缩小到:

Event        | Response
------------ | ------
Birthday     | Yes
Anniversary  | No
Anniversary  | No
Birthday     | Yes
Birthday     | Yes
我想计算每个事件的“是”回复数,因此最终产品应为:

Event        | numYes
------------ | ------
Birthday     | 3
Anniversary  | 0
我想它使用了
按事件分组
响应的聚合器='yes'
,但我不知道如何使它工作

试试这个:

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;
试试这个:

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;
尝试:

这将选择事件列,并对该事件的响应为“是”的所有行求和,并将结果放入名为“numYes”的列中。然后按事件分组,以获得每个事件的唯一实例。

尝试:


这将选择事件列,并对该事件的响应为“是”的所有行求和,并将结果放入名为“numYes”的列中。然后按事件分组,以获得每个事件的唯一实例。

谢谢,对SQL来说还是新手,在我的阅读资料中一定跳过了
sum
。正在尝试使用
count
@Tom现在查看更新答案。使用CountThank添加了一些详细信息和另一个查询,这对SQL来说还是新的,在我的阅读资料中一定跳过了
sum
。正在尝试使用
count
@Tom现在查看更新答案。添加了一些详细信息和另一个使用Count的查询如果您编辑您的答案来解释这是答案的原因,您的答案会更有用。@Blackwood添加了一些文字如果您编辑您的答案来解释这是答案的原因,您的答案会更有用。@Blackwood添加了一些文字