我对网站http://www.sql-ex.ru/上的 sql 查询有疑问。查询要求:
定义制造商 A 生产的个人电脑和笔记本电脑的平均价格。
数据库架构如下:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
我将查询写为:
SELECT AVG(t.k) AS Avg_Price
FROM
(SELECT AVG(A.price) AS k
FROM PC A
JOIN Product B ON(A.model=B.model)
WHERE B.maker='A'
UNION ALL
SELECT AVG(C.price) AS k
FROM Laptop C
JOIN PRODUCT D ON(C.model=D.model)
WHERE D.maker='A') AS t
问题是它没有返回正确的答案。平均回报远高于预期。计算平均值的方式是否错误?如何更改查询以使其返回预期的答案?任何帮助,将不胜感激。
谢谢