Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unbekannte Spalte bei Verwendung des Alias ​​mysql

Bitte posten Sie eine Frage mit Beispieldaten, das macht es einfach, sie zu testen und richtig zu beantworten.

In Ihrem Code a1 ist der Name der abgeleiteten Tabelle, nicht der Spaltenname.

Aggregatfunktionen akzeptieren den Parameter in Bezug auf den Spaltennamen.

Versuchen Sie Folgendes:

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;