【发布时间】:2018-07-27 19:28:25
【问题描述】:
我有 2 张桌子:
Product(ProductID, ProductName, ProductPrice, VendorID, CategoryID)
SoldVia(ProductID, TID, NoOfItems)
我需要显示销量最高的产品的产品 ID。我可以通过这个查询轻松得出按升序排序的列表:
SELECT distinct productid, sum(noofitems)
From soldvia
Group By productid
Order By sum(noofitems) DESC
问题是,我如何使用MAX 函数只显示列表的顶部值?我不能使用LIMIT 或TOP 进行此分配,但是每当我使用MAX 时,我都会遇到各种聚合问题。
完成后,如何显示畅销产品的产品名称?
谢谢!
【问题讨论】:
-
SELECT DISTINCT和GROUP BY几乎没有必要。 -
通过将您的查询变成带有别名的子查询,从而将其转换为派生表。然后从派生表中选择最大值。
-
@DanBracuk,你能告诉我这 2 个特定表的 SELECT 和 WHERE 是什么样的吗?