mysql - 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 的所有元组?
解决方案
您可以使用EXISTS
:
SELECT s.*
FROM Stores s
WHERE EXISTS (SELECT 1 FROM Stores s1 WHERE s1.Industry = s.Industry AND s1.Name <> s.Name);
推荐阅读
- python - 使用 group by 后如何将结果保存为数据框
- shell - 循环监听代码不适用于 Shuttler 按钮
- c# - 如何在不循环的情况下将 LINQ 查询结果分组到 DataGridView
- html - 如果 HTML 表格太大,则直到下一页才会开始
- haskell - 如何在 haskell 中获取元组的索引?
- javascript - 我正在使用 node js 开发一个应用程序,它在本地运行良好,但每当我尝试将其上传到 heroku 时就会崩溃,它说 cat find dotenv
- javascript - 通过谷歌应用脚本向不和谐频道发送消息
- oracle - 如何在 PL/SQL 中创建可以创建限制的触发器,以便它们只能放置 1 个字符?
- python - 在while循环中列出索引超出范围
- c# - 如何使用 LINQ Select 调用异步 Lamba 表达式?