我正在尝试查找哪些产品的附加成分最多(糖浆、浓缩咖啡等)。我该怎么做?我可以找到个人销售情况,但如何在咖啡饮料中添加浓缩咖啡?
Select p.ProductName, TotalADDON = SUM(Quantity)
From MSProducts p, MSOrderline o
where p.ProductID = o.ProductID
Group By p.ProductName
这是我想出的最好的方法,但它将单独购买的每杯咖啡与附加产品相加。附加产品 ID 为 1444 和 1445。任何帮助或演练将不胜感激!
我正在寻找的结果是......
产品ID TotalAddOn
1451___________ 1
1452___________ 0
1453___________ 0
1461___________ 0
1462___________ 0
1463___________ 0
1471___________ 0
1472___________ 0
1473___________ 0
1481___________ 6
1482___________ 0
1483___________ 0
1491___________ 0
1492___________ 0
1493___________ 2
当然还有更多数据,但是有了给定的数据,这就是结果。
最佳答案
对于每种产品,您似乎想要与订单中其他产品的总数相关的信息。
您可以通过以下方式获取每个订单的信息:
select p.purchaseId, p.productId, sum(o.quantity) as otherQuantity
from MSProducts p join
MSOrderline o
on p.PurchaseId = o.PurchaseId and
p.ProductId <> o.ProductId
group by p.purchaseId, p.productId;
然后,如果您想要每个订单的平均值,这里有一种方法:
select productId, avg(otherQuantity) as avgOthers, count(*) as numOrders
from (select p.purchaseId, p.productId, sum(o.quantity) as otherQuantity
from MSProducts p join
MSOrderline o
on p.PurchaseId = o.PurchaseId and
p.ProductId <> o.ProductId
group by p.purchaseId, p.productId
) pp
group by productId;
关于mysql - SQL:添加与另一个 ProductID 一起购买的特定 ProductID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43483574/