商店中购买最多的商品SQL

时间:2019-11-13 18:25:59

标签: java mysql sql items

您好,我目前正在尝试建立一个学校项目,以便在mySQL中保存来自Pizzashop的订单。我想对这些订单进行排序,以找到购买最多的比萨饼,以及已售出的比萨饼数量。

我的桌子看起来像这样。 Table with the order id, the nr on the pizza sold and how many of that pizza sold on one order

我尝试运行类似这样的内容。 选择nr作为最购买的商品,数量为odetails的GROUPTY或ORDER BY SUM(数量)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)

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

2 个答案:

答案 0 :(得分:1)

选择nr作为最购买的商品,从odetails中按GROUP BY 1 ORDER BY 2 DESC LIMIT 5求SUM(qty);

答案 1 :(得分:0)

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

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

这将使用未命名列nr分组的组中的数量之和,并使用数量qtysum的别名,按数量之和排序。我避免再次使用名称qty,因为您应该避免使用数据源中存在的列作为别名,这会混淆数据库。

我在这里做了一个简单的例子,尽管我不知道您的nr列实际上是什么,所以我只用了字母,它可以与那里的任何数据类型一样工作:{{3 }}