Мне нужно вычислить разницу между двумя различными средними значениями рейтинга: один для рейтинга фильмов до определенного года_обрезания (1980) и второй после года_обрезания, запрашивая из двух разных баз данных: Рейтинг и фильмы.
То, что я сделал, это:
Мне нужно вычислить разницу средних звезд между фильмами до 1980 года и после 1980 года.
Сначала я сгруппировал названия фильмов и вычислил средний рейтинг для каждой группы.
Во-вторых, я разделил эти группы на две категории: до 1980 года и после 1980 года
Наконец, я пытаюсь пересчитать среднее (среднее) для каждой из этих двух групп, а именно avgBefore и avgAfter, и вычислить разницу этих двух новых средних
Я ожидаю одно число, которое является avgBefore - avgAfter (avgB - avgA)
Ниже моя попытка кода. Моя главная проблема - правильно вставить два условия «до» и «после» 1980 года. Я пытаюсь определить псевдонимы, такие как avgB и avgA, но, очевидно, предложение UNION не вызывается должным образом.
SELECT AVG(avgB) - AVG(avgA)
FROM(
SELECT AVG(stars) as avgB
FROM Rating
JOIN Movie
ON Rating.mID = Movie.mID
GROUP BY title
HAVING year < 1980
UNION
SELECT AVG(stars) as avgA
FROM Rating
JOIN Movie
ON Rating.mID = Movie.mID
GROUP BY title
HAVING year > 1980
);