商店中购买最多的商品 SQL

Most bought item in store SQL

您好,我目前正在尝试制作一个学校项目来保存来自 mySQL 的披萨店的订单。我想对这些订单进行排序,以找到购买次数最多的披萨以及已售出的披萨数量。

我的桌子是这样的.. Table with the order id, the nr on the pizza sold and how many of that pizza sold on one order

我试过运行这样的东西.. SELECT nr as mostbought, qty FROM odetails GROUP BY nr ORDER BY SUM(qty) DESC LIMIT 5;

但它并没有将数量加起来,因为 nr 5 和 1 被购买了 6 次,而不是 3 和 2.. 我写的查询似乎输出了购买最多的最高数量..

Table with the nr of the pizza bought most and qty(which i want added together)

我希望有人能帮助我们,我们有点困在这里..非常感谢:)

SELECT nr as mostbought, SUM(qty) FROM odetails GROUP BY 1 ORDER BY 2 DESC LIMIT 5;

您只是要求它提供该行的数量,而不是组中数量的总和:

SELECT nr AS mostbought, SUM(qty) AS qtysum
FROM odetails
GROUP BY nr
ORDER BY qtysum DESC
LIMIT 5;

这将对组内的数量求和,按无别名列 nr 分组,按数量总和排序,使用为此指定的别名 qtysum。我避免再次使用名称 qty,因为您应该避免使用数据源中存在的列作为别名,它会混淆数据库。

我在这里做了一个简单的例子,虽然我不知道你的 nr 列实际上是什么,所以我只使用了字母,它对那里的任何数据类型都适用:SQLFiddle