mysql - 如何在表中找不到数据时将计数设为 0?

标签 mysql postgresql group-by rdbms select-query

假设我有一个下表名称“temp”

   id   | name
   -----+-------
      1 | AAA        
      2 | BBB        
      3 | BBB        

正在使用以下查询获取名称的数量

  SELECT name , count(*) FROm temp where name IN ('AAA','BBB','CCC') group by 1

当我执行查询时,我得到了以下输出

      name | count 
------------+-------
AAA        |     1
BBB        |     2

但是我需要下面的输出

    name | count 
    ------+-------
   AAA   |     1
   BBB    |     2
   CCC   |     0

如何得到这个输出???

最佳答案

您可以创建另一个临时表 tmp2,其值为 'AAA'、'BBB'、'CCC'... 然后您的选择查询将如下所示:

SELECT tmp2.name, count(temp.name) 
FROM tmp2 
LEFT JOIN temp ON temp.name=tmp2.name
GROUP BY tmp2.name

关于mysql - 如何在表中找不到数据时将计数设为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39507499/

相关文章:

mysql - 如何在 MySQL SUM 子查询中创建可用的别名

MySql 从 4 个不同的表中选择

postgresql - 尝试在 Linux 上初始化 PostgreSQL 数据库服务器时出现 "Permission denied"

postgresql - 将足够多的参数传递给lib/pq

sql - PostgreSQL 更新时区偏移量

Mysql 仅将一行求和一次 - 使用 Group By

mysql - 将两个 group by 与一个 select 语句一起使用

mysql - MySQL index_length 是以字节为单位吗?

mysql - MySQL全文检索中,如何检索只包含特定单词的文档?

sql - 建议一种有效的查询方式