Mysql
 sql >> Database >  >> RDS >> Mysql

Colonna sconosciuta durante l'utilizzo di alias mysql

Si prega di pubblicare la domanda con dati di esempio, il che rende facile il test e la risposta corretta.

Nel tuo codice a1 è il nome della tabella derivata non il nome della colonna.

Le funzioni aggregate accettano il parametro in termini di nome della colonna.

Prova quanto segue:

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;