Упражнение 27

Найдите средний размер диска ПК каждого из тех производителей, которые выпускают и принтеры.
Вывести: maker, средний размер HD.

Проследите за ходом решения задачи и найдите ошибки.

  1. Определим всех производителей, которые выпускают принтеры.
SELECT Product.maker
FROM Product 
    INNER JOIN Printer ON Product.model = Printer.model
GROUP BY Product.maker;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]
  1. Выведем для каждого ПК размер жесткого диска и его производителя.
SELECT PC.hd, Product.maker
FROM PC 
    INNER JOIN Product ON PC.model = Product.model;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]
  1. Ограничимся в пункте 2 только теми строками, которые имеют производителя, найденного в пункте 1.
SELECT PC.hd, Product.maker
FROM PC 
    INNER JOIN Product ON PC.model = Product.model
WHERE Product.maker IN (SELECT Product1.maker
                        FROM Product Product1 
                            INNER JOIN Printer ON Product1.model = Printer.model
                        GROUP BY Product1.maker
                        );
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]
  1. В окончательном решении получаем средние значения на основе запроса из пункта 3.
SELECT Result.maker, AVG(result.hd)
FROM (SELECT PC.hd, Product.maker
        FROM PC 
            INNER JOIN Product ON PC.model = Product.model
        WHERE Product.maker IN (SELECT Product1.maker
                                FROM Product Product1
                                    INNER JOIN Printer ON Product1.model = Printer.model
                                GROUP BY Product1.maker
                                )
) AS result
GROUP BY result.maker;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]

ПиР

Решить задачу на SQL-EX.RU