mysql - 如何计算多个类别中的品牌
问题描述
老实说,我不确定要搜索什么来自主回答我的问题,而且我的 SQL 知识令人厌恶。
如何修改我的 SQL 查询;展示存在于 3 个或更多类别中的不同品牌,以及它们所主持的类别?
例如,耐克应该只显示;因为三星仅存在于 2 个类别中。
SELECT DISTINCT(brand),
category
FROM products
ORDER BY category,
brand
Brand | category
-----------------
Nike | Baby
Nike | Footwear
Nike | Pets
Samsung | TVs
Samsung | Baby
拥有谷歌我认为有一个子查询的概念,我可能需要一个 HAVING :s
解决方案
如果您在子句group by brand
中设置条件,您可以获得品牌:having
select brand
from products
group by brand
having count(distinct category) >= 3
如果您还希望类别使用上述查询作为带有运算符 IN 的子查询:
select distinct brand, category
from products
where brand in (
select brand
from products
group by brand
having count(distinct category) >= 3
)
distinct
如果没有重复的情况,请删除。
推荐阅读
- mysql - 在mysql select语句中使用每2个字符后在字符串中添加连字符
- html - PowerBI Dashboard 聊天窗口自定义
- amazon-web-services - AWS Glue 中的错误:下载脚本时出错
- php - 使用刷新令牌续订后访问令牌相同
- javascript - React Native - MapView 中 UrlTile 的动态 URL
- couchbase - Couchbase 未为所有文档设置新属性
- sql-server - 无法启动从 SQL Server 到 Oracle 的链接服务器的分布式事务
- .net - 无法在 SQL Server Management Studio 中加载文件或程序集 'System.EnterpriseServices,版本 = 4.0.0.0
- jenkins - 如何让 Jenkins lastBuild API 与多分支管道一起工作?
- xamarin - 如何从 xamarin 形式的类中连接字符串?