Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对列中的不同值进行计数,如果在Where子句中找不到,则返回零_Mysql_Sql_Select - Fatal编程技术网

Mysql 对列中的不同值进行计数,如果在Where子句中找不到,则返回零

Mysql 对列中的不同值进行计数,如果在Where子句中找不到,则返回零,mysql,sql,select,Mysql,Sql,Select,这是我的桌子: 我正在运行这个查询 SELECT fruits,COUNT(*) as count FROM meva where owner = 'bill' GROUP BY fruits ORDER BY count 我得到的结果是 如果与所有者不匹配,是否可以将其他水果项目设置为0 Fruit | count Apple , 2 Mango , 0 Banana , 0 Strawberry ,0 Appricot, 0 Alfonso , 0

这是我的桌子:

我正在运行这个查询

SELECT fruits,COUNT(*) as count FROM meva where owner = 'bill' GROUP BY fruits ORDER BY count 
我得到的结果是

如果与所有者不匹配,是否可以将其他水果项目设置为0

Fruit   | count
Apple   ,   2
Mango   ,   0
Banana  ,   0
Strawberry ,0
Appricot,   0
Alfonso ,   0
非常感谢您对我的问题稍加修改。 谢谢

使用
SUM()
CASE

SELECT  fruits, 
        SUM(CASE WHEN owner = 'bill' THEN 1 ELSE 0 END) as `count `
FROM     meva 
GROUP BY fruits 
ORDER BY fruits
或者使用
IF
(仅在
MySQL
中)


    • 是的,上面有一个很好的答案。你也可以试试这个

      SELECT  fruits, 
              SUM(Coalesce(owner='bill',0)) as counts
      FROM     meva 
      GROUP BY fruits 
      ORDER BY fruits
      ;
      

      只要
      SUM(owner='bill')
      就足够了:)@jackgood-one:D真的很好!我想,在我的逻辑中,这就是不管如何合并的工作原理@Zan让我知道这是怎么回事:)也应该在MYSQL和SQL Server中工作。
      SELECT  fruits, 
              SUM(Coalesce(owner='bill',0)) as counts
      FROM     meva 
      GROUP BY fruits 
      ORDER BY fruits
      ;