You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中SQL代码出现「Unknown Column」错误排查求助

问题解决:MySQL 1054 错误及逻辑修正

一、语法错误原因

你遇到的Error Code: 1054是因为MySQL执行顺序规则:WHERE子句在GROUP BY和聚合计算之前运行,此时Average IMDB Rating、Number of Movies这类聚合生成的别名还未被创建,自然无法被WHERE识别。必须使用HAVING子句过滤聚合后的分组结果——HAVING是在GROUP BY和聚合计算完成后才执行的,能识别聚合别名或直接使用聚合函数。

二、逻辑修正(匹配你的需求)

你的需求是“参演超8部IMDB评分低于8.0的电影”,但原代码逻辑是“所有参演电影的平均评分低于8,且总参演数>8”,这和需求不符。需要调整逻辑,专门统计每个演员参演的评分<8的电影数量,再筛选该数量超过8的记录。

三、修正后的代码(两种方案,均符合你的知识范围)

方案1:先筛选低评分电影,再统计参演数

SELECT 
    CONCAT(FirstName, ' ', LastName) AS `Actors and Actresses`,
    COUNT(ma.CelebrityId) AS `Number of Low-Rated Movies`,
    ROUND(AVG(IMDBRating), 2) AS `Average IMDB Rating of Low-Rated Movies`, 
    MIN(IMDBRating) AS `Minimum Rating`,
    SUM(NumVotes) AS `Total Votes`
FROM
    movie
        INNER JOIN
    movieactor AS ma ON movie.MovieId = ma.MovieId
        INNER JOIN
    celebrity ON ma.CelebrityId = celebrity.CelebrityId
WHERE
    IMDBRating < 8.0  -- 先筛选出评分低于8的电影
GROUP BY FirstName, LastName
HAVING
    `Number of Low-Rated Movies` > 8  -- 用HAVING过滤统计后的数量
ORDER BY `Average IMDB Rating of Low-Rated Movies` ASC;

方案2:用CASE函数统计特定条件的电影数(保留全量电影数据时适用)

SELECT 
    CONCAT(FirstName, ' ', LastName) AS `Actors and Actresses`,
    COUNT(ma.CelebrityId) AS `Total Movies`,
    COUNT(CASE WHEN IMDBRating < 8.0 THEN 1 END) AS `Number of Low-Rated Movies`,
    ROUND(AVG(IMDBRating), 2) AS `Average IMDB Rating`, 
    MIN(IMDBRating) AS `Minimum Rating`,
    SUM(NumVotes) AS `Total Votes`
FROM
    movie
        INNER JOIN
    movieactor AS ma ON movie.MovieId = ma.MovieId
        INNER JOIN
    celebrity ON ma.CelebrityId = celebrity.CelebrityId
GROUP BY FirstName, LastName
HAVING
    `Number of Low-Rated Movies` > 8  -- 过滤低评分电影数超8的演员
ORDER BY `Average IMDB Rating` ASC;

四、核心知识点总结

  • WHERE与HAVING的区别:WHERE过滤原始行数据,不能用聚合函数或别名;HAVING过滤聚合后的分组结果,可直接使用聚合函数或其别名。
  • CASE函数的统计用法:COUNT(CASE WHEN 条件 THEN 1 END)能精准统计分组内符合条件的记录数,不符合条件的记录会返回NULL,不会被COUNT计入。

内容的提问来源于stack exchange,提问作者Kodi van Niel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:55:04