Publique una pregunta con datos de muestra, lo que facilita la prueba y la respuesta adecuada.
En tu código a1
es el nombre de la tabla derivada, no el nombre de la columna.
Las funciones agregadas aceptan el parámetro en términos de nombre de columna.
Prueba lo siguiente:
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;