mysql—当每个事务的数量存储在一个单独的字段中时,使用GROUPBY来计算购买数量

v1uwarro  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(300)

我有一张table叫 orders 每行存储一个订单或购买。以下是其数据示例:

在上表中,每个 id 对应于订单。 product_id 是在交易中购买的产品的id。注意有一个列叫做 quantity 它存储每个订单上购买的产品数量。我需要的是一个查询,返回按 product_id . 这就是我迄今为止所做的:

SELECT COUNT(id), `product_id` FROM `orders` GROUP BY `deal_id`;

结果如下:

问题是结果忽略了列 quantity . 我需要以一种考虑到 quantity . 谢谢您。

lc8prwob

lc8prwob1#

按产品划分的销售额如下所示:

SELECT o.product_id, COUNT(*) as num_orders, SUM(o.quantity) as total_quantity
FROM orders o
GROUP BY o.product_id;

您正在学习sql,以下是一些建议:
总是限定你的列名,这样你——或者其他人——就知道它们来自哪些列。
在聚合查询中,将未聚合的列放在第一位(除非您有充分的理由这样做)。
在聚合查询中,确保未聚合的列与 GROUP BY 柱。如果未聚合的列是第一列,则更简单。

5rgfhyps

5rgfhyps2#

正如giorgos betsos和barmar所建议的,这就是解决方案:

SELECT SUM(quantity), `product_id` FROM `orders` GROUP BY `product_id`;

相关问题