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

MySQL窗口函数SQL语句报错求助:ER_PARSE_ERROR语法错误

问题原因与解决方案

错误原因

你写的SQL用了OVER (PARTITION BY)窗口函数,但MySQL 5.7及更早版本不支持窗口函数,这是触发语法错误(ER_PARSE_ERROR)的核心原因。

解决方法

方法1:升级MySQL版本

把MySQL升级到8.0或更高版本,升级后就能直接运行你写的SQL:

select student_id, student_name, count(student_department) over (partition by student_department) as department_total from students;

方法2:分组连接替代(无需升级)

如果没法升级,用子查询统计部门人数再和原表连接,能达到同样效果:

SELECT 
    s.student_id, 
    s.student_name, 
    dept.department_total
FROM students s
JOIN (
    SELECT student_department, COUNT(*) AS department_total
    FROM students
    GROUP BY student_department
) dept ON s.student_department = dept.student_department;

这个写法先通过子查询算出每个部门的总人数,再通过JOIN把每个学生对应的部门人数关联回去,结果和窗口函数的输出一致。

内容的提问来源于stack exchange,提问作者Kanza Fatima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:42:00