首页 > 解决方案 > SQL:使用计数后选择列中包含某个值的所有元组

问题描述

我有下表称为商店:

Name   |   Category   |   Industry 

ABC         appliances      retail 
XYZ         banking         finance 
NZE         clothing        retail
JKI         tutoring        education

我想输出他们行业中唯一的所有名称(例如,XYZ 和 JKI 是他们行业中唯一的名称)。

我有以下查询:

select s.Name, s.Industry, a.Number
from Stores s
inner join (
select Industry, count(*) as Number
from Stores group by Industry
) a
on s.Industry = a.Industry;

我得到一个输出表,它有一个名为 Number 的属性,它给出了每个行业出现在表 Stores 中的总次数。使用内连接后,如何选择 Number 列中值为 1 的所有元组?

标签: mysqlsqlcount

解决方案


您可以使用EXISTS

SELECT s.*
FROM Stores s
WHERE EXISTS (SELECT 1 FROM Stores s1 WHERE s1.Industry = s.Industry AND s1.Name <> s.Name);

推荐阅读