mysql - 使用 count() 分组

标签 mysql sql

我的表格内容:

id  aid
----------
1   1
2   2
3   2
4   4
5   4

我的 sql: select count(*) from table where aid in (1,2,3,4) group by aid

结果:

count(*)
----------
1
2
2

我想要结果:

count(*)
----------
1
2
0
2

当援助为 1,2,3,4 时,我想要一个计数结果。我应该使用什么sql?感谢帮助。 (我用的是MySQL)

最佳答案

-- your data
DECLARE @Data TABLE (Id int, Aid int)
INSERT INTO @Data VALUES
(1,1),
(2,2),
(3,2),
(4,4),
(5,4);

DECLARE @Relevant TABLE (Id int )
INSERT INTO @Relevant VALUES (1),(2),(3),(4);

-- the query
SELECT Relevant.Id, COUNT(Data.Aid)
FROM @Data Data
RIGHT JOIN @Relevant Relevant ON Data.Aid = Relevant.Id
GROUP BY Data.Aid, Relevant.Id

关于mysql - 使用 count() 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11879592/

相关文章:

mysql - 如何在Code-first中从数据库(mysql)导出表?

mysql - 获取特定日期之前的所有行

php - 当数据来自多个表时,如何使用 PHP 和 MYSQL 填充表单中的字段?

mysql - 无法更新我的数据库

php - 将MYSQL表信息放入html表

MySql 在单个查询中插入多个值

mysql - 具有多个值的 FIND_IN_SET

sql - Oracle SQL - 将 select count(*) 转换为零或一

sql - 在不需要 UNION 的情况下完全连接同一列上的同一表

mysql - 将 SQL 表透视为 N 列