Webサイトhttp://www.sql-ex.ru/でSQLクエリについて質問がありました。クエリは以下を要求します:
メーカーAが製造したPCとラップトップの平均価格を定義します。
データベーススキーマは次のとおりです。
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
問題は、正解が返されないことです。返される平均は予想よりはるかに高いです。平均の計算方法が間違っていますか?期待される答えを返すようにクエリを変更するにはどうすればよいですか?どんな助けでもいただければ幸いです。
ありがとう