Упражнение 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';
🚫
[[ error ]]
[[ column ]]
NULL [[ value ]]

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

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