你的意思是这样的:
SELECT ItemNumber
FROM myTable
WHERE TotalPurchased = (SELECT MAX(TotalPurchased) FROM myTable)
的关键是要想想你想用简单的英语是什么。在这种情况下,它是“给我具有最大总采购额的行的商品编号”。不幸的是,SQL不能理解“with”。但是在改写时,我们得到了“TotalPurchased是TotalPurchased在整个表中的最大值”这一行的“给我的ItemNumber”,这就是答案。
关于第二个想法,我可能误解你,你想要一个总TotalPurchased的......在这种情况下,你可以试试(TotalPurchased不是总):
SELECT t1.ItemNumber, SUM(t1.TotalPurchased) AS TotalTotalPurchased
FROM myTable AS t1
GROUP BY ItemNumber
HAVING SUM(t1.TotalPurchased) = (
SELECT SUM(TotalPurchased)
FROM myTable
GROUP BY ItemNumber
ORDER BY SUM(TotalPurchased) DESC
LIMIT 1
)
http://sqlfiddle.com/#!5/1cd57/3
请注意,这些查询的优点是,如果多个ItemNumber绑定为最大值,您将获得所有结果。但是,如果您只需要一个最佳结果,请与@ DmitryOsinovskiy的答案一起。