首页 > 解决方案 > SQL 查询 - 选择计数时返回 0(*)

问题描述

首先,我已经阅读了所有具有相同标题的帖子。但是没有解决方案可以解决我的问题。

我想要我的查询结果是这样的

kategori | hitung

 Good    |   2

 Nice    |   0

great    |   1 

使用此查询:

SELECT kategori, COALESCE(COUNT(kategori), 0) AS hitung FROM tb_cust WHERE id_sales=9 GROUP BY kategori DESC

但结果只返回 2 个数据:

kategori | hitung

 Good    |   2

great    |   1 

我的查询有误吗?

编辑:

这是我的表格和里面的数据

表名:tb_cust

id_cust  |  name_cust  |  kategori  |  id_sales

   1     |  Name 1     |  Good      |     9

   2     |  Name 2     |  Good      |     9

   3     |  Name 3     |  Great     |     9

标签: phpmysqlsqldatabasephpmyadmin

解决方案


根据您的条件(WHERE id_sales=9)在 tb_cust 中可用的 categori 值是“Good”、“Great”。

你可以拥有的是

步骤 1.首先在 cte -> kategori_val 中有一个块来显示 categori 的所有可能值

步骤 2. 与 tb_cust 中的数据左连接并获取记录数

--我猜“with”在mysql数据库中不起作用

   select a.kategori,count(b.kategori) as hitung
     from (select distinct kategori /*I am assuming we have Good,Great and Nice available in tb_cust*/
             from tb_cust) a
left join tb_cust b
       on a.kategori=b.kategori
      and b.id_sales=9 
group by a.kategori 
order by 2 DESC

推荐阅读