MySQL计数组由

时间:2011-07-04 16:37:32

标签: mysql group-by

我有3个表,订单(orders_id,date,...),产品(product_id,product_name,product_price)和order_products(product_id,orders_id,product_id,products_quantity),我需要对产品进行分组,以便显示它们按产品和每件产品的总数量,使eshop经理更容易知道每件产品的订购数量。

我在思考正确的sql语法方面遇到了一些麻烦,我不断碰到问题,我想要一些帮助。

这是我到目前为止所做的事情

select *, op.products_quantity as pquant, count(*) as `count`
from orders o
left join orders_products op on o.orders_id = op.orders_id
left join products p on op.products_id = p.products_id 
group by op.orders_products_id
order by op.products_id desc;

3 个答案:

答案 0 :(得分:0)

看看你有什么,你在计算订单,而不是总结订单数量。

所以

如果你有

订单

monday 5 potatoes
tuesday 2 carrots
wednesday 3 potatoes

你想要

potatoes 8
carrots 2

在这种情况下你想要做

select sum(quantity),item from orders group by item

我没有看到orders_products和订单之间的区别是什么。

也许一些样本数据有帮助吗?

答案 1 :(得分:0)

Select p.Product_name,sum(prodcuts_quantity) as OrderedQuantity from 
Order_products op join
Products p on p.Product_id = op.product_id
group by p.Product_name

答案 2 :(得分:0)

如果您需要每件商品的总数量和总订单数,那么您可以按照以下方式执行此操作

SELECT p。*,op.total_order,op.total_quantity FROM PRODUCT LEFT JOIN(SELECT COUNT(*)AS total_order,SUM(quantity)AS total_quantity FROM orders_products GROUP BY product_id)AS op ON p.id = op.product_id

相关问题