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

我希望我的查询结果是这样的

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

最佳答案

根据您的条件(WHERE id_sales = 9),tb_cust中可用的kategori值是“好”,“好”。

相反,您可能拥有的是

第1步。首先在cte-> kategori_val中有一个块以显示kategori的所有可能值

步骤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

09-17 06:36