首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >其他帮助Northwind示例SQL

其他帮助Northwind示例SQL
EN

Stack Overflow用户
提问于 2015-12-25 15:47:49
回答 2查看 205关注 0票数 0

我对Northwind Server示例数据库有疑问,我不知道如何解决它

显示CustomerID的所有客户,至少有三个不同的产品,从所有订单,但从未订购2个产品来自同一类别。

我不知道如何检查“但从未从同一类别订购两种产品”

请帮助我:)密码我试过这个问题:

代码语言:javascript
复制
SELECT
    c.CustomerID,COUNT(DISTINCT p.ProductID)
FROM 
    Customers c
JOIN 
    Orders o ON o.CustomerID = c.CustomerID
JOIN 
   [Order Details] od ON od.OrderID = o.OrderID
JOIN 
   Products p ON p.ProductID = od.ProductID
GROUP BY
   c.CustomerID
HAVING
   COUNT(DISTINCT p.ProductID) >= 3 

我在这些问题上已经被困了好几个小时了,请帮帮我!

这是Northwind示例数据库的链接:https://northwinddatabase.codeplex.com/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-25 15:53:20

再添加一个条件来检查不同产品的数量是否等于不同类别的数量。这确保每个类别总是有一个和唯一一个产品。

代码语言:javascript
复制
SELECT 
c.CustomerID,COUNT(DISTINCT p.ProductID), count(distinct c.categoryid)
FROM Customers c
JOIN Orders o ON o.CustomerID = c.CustomerID
JOIN [Order Details] od ON od.OrderID = o.OrderID
JOIN Products p ON p.ProductID = od.ProductID
GROUP BY c.CustomerID
HAVING COUNT(DISTINCT p.ProductID) >= 3 
and count(distinct c.categoryid) = COUNT(DISTINCT p.ProductID)
票数 0
EN

Stack Overflow用户

发布于 2015-12-25 15:51:43

如果每个订单必须来自不同的类别,那么计数(产品)应该与COUNT(类别)相同。这是一种合乎逻辑的方法,但毫无疑问还有其他的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34464203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档