计数 SQL 条查询记录

Count SQL Query Records

我有一个问题,我需要确定有多少公司参与了给定的项目编号。例如,确定哪些公司恰好参与了 2 个项目。

给定以下基数:

id company project  
1 company1 project1
2 company2 project1
3 company3 project2
4 company1 project2
5 company2 project2
6 company2 project3
7 company3 project1
8 company1 project1
9 company2 project2
10 company1 project2

如何使用SQL查询来解决这个问题?对于上面的这种情况,查询应该是 return:

company1
company2

您使用 group byhaving:

select company
from t
group by company
having count(distinct project) = 2;

您可以通过 company 使用聚合并使用 having 子句进行过滤:

select company
from mytable
group by company
having count(project) = 2

如果给定公司的同一个项目可能出现两次,那么您需要 count(distinct project) 而不是 count(project)