我正在努力寻找哪些产品添加量最多(糖浆,浓缩咖啡等)。我该怎么做?我可以找到个人销售,但我如何在咖啡饮料中加入咖啡?
Select p.ProductName, TotalADDON = SUM(Quantity)
From MSProducts p, MSOrderline o
where p.ProductID = o.ProductID
Group By p.ProductName
这是我提出的最好的,但它加起来每个单独购买的咖啡加上附加物。附加产品ID为1444和1445.非常感谢任何帮助或演练!
我正在寻找的结果是......
ProductID 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
当然有更多数据,但根据给出的数据,这将是结果。
答案 0 :(得分:0)
1)获取购买的附加件数量2)获取订单上的主要饮料 仅限附件3)显示使用附件购买的产品
select x.ProductID,x.ProductName, sum(x.TotalAddOnsperPurchase) TotalQty from
( Select p.ProductName,p.ProductID,o.PurchaseID,
(select sum(quantity) from MSOrderline l where l.productID in (1444,1445) and l.PurchaseID = o.PurchaseID) TotalAddOnsperPurchase -- to sum quantity of add-ons
From MSProducts p
inner join MSOrderline o on
p.ProductID = o.ProductID
where
p.productID not in ('1444','1445') -- exclude this so to only display main beverage
) x
where x.TotalAddOnsperPurchase > 0 -- remove this line if you want to display everything
group by x.ProductID,x.ProductName
答案 1 :(得分:0)
您似乎想要为每种产品订购与订单中其他产品总量相关的内容。
您可以通过以下方式获取每个订单:
y_probability[:,0].argsort()[::-1]
# array([1, 0, 2, 3])
然后,如果你想要每个订单的平均值,这里有一种方法:
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;