name | sub1 | sub2 | sub3
__________________________
prad |  poor| good | poor
vas  | good | poor | poor


我想计算每个人得到的“贫困”人数

我尝试查询"SELECT name, COUNT(name) FROM tbl_name where (sub1,sub2,sub3)='poor' group by name;"
它不起作用..请帮助
如何计算行数?

最佳答案

如果您的表中可以有许多相等的名称,请尝试以下操作(您未指定主键):

select name, sum(
    if (sub1='poor', 1, 0) +
    if (sub2='poor', 1, 0) +
    if (sub3='poor', 1, 0)
) as total from Data
group by name;


这是一个example

如果您的表中没有重复的名称,则执行以下操作:

select name,
    if (sub1='poor', 1, 0) +
    if (sub2='poor', 1, 0) +
    if (sub3='poor', 1, 0)
as total from Data


这是一个example

让我知道这个是否奏效。

关于mysql - 如何在mysql表中按行计算特定字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9151202/

10-14 13:05