此代码:
SELECT ProductID, COUNT(ProductID) AS Occurrences
FROM OrderDetails
Group By ProductID;
是我尝试获取orderDetails表中出现的productID,计算包含该产品的订单数量,然后对productID计数降序进行排序。在外行人的术语中,我想通过按降序显示其数量来显示哪些产品最受欢迎,以便销售"销售的产品"最多的将发生在顶部。我遇到的问题是,当我尝试使用" Group by"使用" Occurrences",它会抛出一个错误,我不能将聚合函数与group by一起使用。如果我按产品ID进行分组,则会显示所有地方的计数,这不是提供信息的最有用方式。
答案 0 :(得分:1)
此应该工作:
SELECT ProductID, COUNT(ProductID) AS Occurrences
FROM OrderDetails
Group By ProductID
Order By COUNT(ProductID) DESC;
答案 1 :(得分:1)
如果您想了解产品的受欢迎程度,那么您真正想要使用的是SUM
而不是COUNT
:
SELECT ProductID,
sum(Qty) AS Occurrences
FROM OrderDetails
Group By ProductID
Order By sum(Qty) DESC;
COUNT
会给你带来有趣的结果。或者你可以使用这样的订单数量:
select ProductID
count(distinct OrderNumber) as NumberOfOrders
from OrderDetails
group by ProductID
order by count(distinct OrderNumber) desc;