问题描述
Tables 我需要从学生表中删除所有学生的正确答案低于exam_results 表中正确答案的平均百分比。必须使用子查询来完成。
到目前为止我已经尝试过:
DELETE FROM students
WHERE id IN (SELECT student_id FROM exam_results WHERE percentage < AVG(percentage));
返回:ERROR 1111: Invalid use of group function
为什么这是对组功能的无效使用? 我错过了什么或有什么问题?
非常感谢任何帮助!谢谢!
解决方法
您需要按如下方式在 sub-query
中找到学生:
DELETE FROM students
WHERE id IN
(SELECT student_id
FROM exam_results
WHERE percentage < (select AVG(percentage) from exam_results);
您也可以使用 analytical function
但这取决于您的 MySql 版本。所以请标记您正在使用的数据库及其版本。