在我的数据库中,表中有某些类别的食物,称为foodgroups。因此,我在不同的表中有与这些类别相关的美食。此外,我还创建了一个包含订单的表,以及一个“ orderfood”表,该表根据订单中有多少产品来定义订单。
我的目的是展示每种食品中销量最高的食品。因此,我想列出一列带有类别的栏目,然后在其旁边列出一列带有食品项的栏目,该栏目是该类别中最畅销的食品项。
Select foodgroups.name, SUM(orderfood.fooditem_ID*orderfood.amount)
FROM orders, orderfood, products, productgroups
Where productgroups.productgroup_ID=products.productgroup_ID
AND orders.order_ID=orderfood.order_ID
AND products.product_ID=orderfood.product_ID
Group by productgroups.productgroup_ID`
到目前为止,它没有显示任何错误,但是我不知道如何获得一个列,该列中仅次于购买最多的食物是购买最多的食物。也许你可以帮我,谢谢:)
顺便说一句,我正在使用MySQL工作台。
http://sqlfiddle.com/#!2/4b79c/2
最佳答案
我认为您正在寻找MAX函数。将其添加到您的选择语句
Select foodgroups.name, SUM(orderfood.fooditem_ID*orderfood.amount), max(orderfood.amount)
FROM orders, orderfood, products, productgroups
Where productgroups.productgroup_ID=products.productgroup_ID
AND orders.order_ID=orderfood.order_ID
AND products.product_ID=orderfood.product_ID
Group by productgroups.productgroup_ID`
那应该给你最有序的食物