【发布时间】:2020-02-28 09:28:11
【问题描述】:
我有三个表格,您也可以在SQL fiddle 中找到它们:
CREATE TABLE Sales (
Product_ID VARCHAR(255),
Sales_Value VARCHAR(255),
Sales_Quantity VARCHAR(255)
);
INSERT INTO Sales
(Product_ID, Sales_Value, Sales_Quantity)
VALUES
("P001", "500", "200"),
("P002", "600", "100"),
("P003", "300", "250"),
("P004", "900", "400"),
("P005", "800", "600"),
("P006", "200", "150"),
("P007", "700", "550");
CREATE TABLE Products (
Product_ID VARCHAR(255),
Product_Name VARCHAR(255),
Category_ID VARCHAR(255)
);
INSERT INTO Products
(Product_ID, Product_Name, Category_ID)
VALUES
("P001", "Shirt", "C001"),
("P002", "Dress", "C001"),
("P003", "Hoodie", "C002"),
("P004", "Ball", "C002"),
("P005", "Ski", "C002"),
("P006", "Boot", "C003"),
("P007", "Flip-Flop", "C003");
CREATE TABLE Categories (
Category_ID VARCHAR(255),
Category_Name VARCHAR(255)
);
INSERT INTO Categories
(Category_ID, Category_Name)
VALUES
("C001", "Fashion"),
("C002", "Sport"),
("C003", "Shoes");
第一个表包含每个产品的Sales。
第二个表包含有关每个product 的详细信息。
第三个表包含categories。
现在,我想显示所有产品以及每个产品旁边的 average_sales_price_per_category。
结果应如下所示:
Product_ID Category average_sales_price_per_category
P001 Fashion 3.66
P002 Fashion 3.66
P003 Sport 1.60
P004 Sport 1.60
P005 Sport 1.60
P006 Shoes 1.28
P007 Shoes 1.28
我尝试使用this question 的解决方案,但我得到了Error:
SELECT s.Product_ID, c.Category_Name,
(SELECT SUM(SS.Sales_Value) / SUM(SS.Sales_Quantity)
FROM Sales SS
WHERE SS.Category_ID = S.Category_ID
) AS average_sales_price
FROM Sales s
JOIN Products p ON p.Product_ID = s.Product_ID
JOIN Categories c ON c.Category_ID = p.Category_ID;
错误
Unknown column 'SS.Category_ID' in 'where clause'
我需要对我的代码进行哪些更改才能获得预期的结果?
【问题讨论】: