Mysql
 sql >> Base de données >  >> RDS >> Mysql

Colonne inconnue lors de l'utilisation de l'alias mysql

Veuillez poster une question avec des exemples de données, ce qui facilite le test et la réponse appropriée.

Dans votre code a1 est le nom de la table dérivée et non le nom de la colonne.

Les fonctions d'agrégation acceptent le paramètre en termes de nom de colonne.

Essayez ce qui suit :

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;