我有一张表Owners
:
Owner product
-----------------
Jhon product1
Jhon product2
Jhon product3
Chris product4
另一张表Products
:
Product QuantitySold
-----------------------
Product1 3
Product2 5
Product3 2
Product4 7
如何编写SQL查询来计算每个所有者的单位销售总数?
例如对于Jhon我应该得到10(3 + 5 + 2)
我试过了:
Select
Owners.owner,
sum(Products.quantitySold)
from
Products, Owners
Group by
owners.owner
但是,对于任何所有者(17 = 3 + 5 + 2 + 7),它返回quantitySold
的总和
非常感谢
答案 0 :(得分:3)
您忘记了JOIN
条件。基本上,您正在使用CROSS JOIN
而不是INNER/OUTER JOIN
。我的建议是不要使用旧式JOIN
语法,而是使用显式JOIN
代替:
SELECT
o.Owner,
SUM(p.QuantitySold)
FROM Owners o
INNER JOIN Products p
ON p.Product = o.Product
GROUP BY o.Owner
参考:
答案 1 :(得分:0)
你也可以使用它,
SELECT DISTINCT(A.Owner), SUM(B.QuantitySold) OVER(PARTITION BY A.Owner ORDER BY A.Owner)
FROM OWNERS A
INNER JOIN PRODUCTS B ON A.product = B.product