Plaats een vraag met voorbeeldgegevens, wat het testen en het juiste antwoord gemakkelijk maakt.
In je code a1
is de naam van de afgeleide tabel, niet de kolomnaam.
Aggregaatfuncties accepteren de parameter in termen van kolomnaam.
Probeer het volgende:
select max(av) - min(av) from
(
select avg(av1) av from
(
select avg(stars) av1
from rating join movie m using(mID)
where year < 1980
group by mID
) as av1
union
select avg(av2) av from
(
select avg(stars) av2
from rating join movie m using(mID)
where year > 1980
group by mID
) as av2
) as a1;