Упражнение 54 (подсказки и решения)

Чтобы написать UNION в решении 3.10.2, недостаточно выполнять объединение по одному столбцу numGuns. Список столбцов должен быть таким, чтобы он однозначно определял корабль. Тогда действительно исключаться будут дубликаты, а не полезная информация.

Ниже представлено решение, которое использует этот прием, но содержит незначительную ошибку, поиск которой предоставляем читателям.

SELECT CAST(AVG(numguns*1.0) AS NUMERIC (6,2))
FROM (SELECT ship, type, numguns
      FROM Outcomes RIGHT JOIN
           Classes ON ship = class
      UNION
      SELECT name, type, numguns
      FROM Ships s JOIN
           Classes c ON c.class = s.class
      ) AS al_sh
WHERE type = 'bb';
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]

Вернуться к обсуждению упражнения 54

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