MySQL中SUM()函数中的筛选器特定行
我有一个计算学生分数的系统。目前,系统计算出最好的六门科目,但我希望它现在计算出最好的六门科目,包括英语成绩,这意味着它是最好的五门加英语。英语标记必须包含在计算中 这是我的密码MySQL中SUM()函数中的筛选器特定行,mysql,Mysql,我有一个计算学生分数的系统。目前,系统计算出最好的六门科目,但我希望它现在计算出最好的六门科目,包括英语成绩,这意味着它是最好的五门加英语。英语标记必须包含在计算中 这是我的密码 UPDATE `students` SET `term_1_avg` =( SELECT ROUND (SUM(sub_avg_term1/6)) AS term_1_avg FROM ( SELECT (sub_avg_term1) FROM marks
UPDATE `students` SET `term_1_avg` =(
SELECT ROUND (SUM(sub_avg_term1/6)) AS term_1_avg
FROM (
SELECT (sub_avg_term1)
FROM marks
WHERE marks.student_id = '$student_search_id'
ORDER BY sub_avg_term1 DESC LIMIT 6
) AS sub
)
WHERE students.student_id='$student_search_id'
我该怎么做呢?你需要做一个由5个top和英语组成的
联盟。差不多
UPDATE `students` SET `term_1_avg` =(
SELECT ROUND (SUM(sub_avg_term1/6)) AS term_1_avg
FROM (
(SELECT (sub_avg_term1)
FROM marks
WHERE marks.student_id = '$student_search_id'
AND marks.subject != 'English'
ORDER BY sub_avg_term1 DESC LIMIT 5)
UNION
(SELECT (sub_avg_term1)
FROM marks
WHERE marks.student_id = '$student_search_id'
AND marks.subject = 'English')
) AS sub
)
WHERE students.student_id='$student_search_id'
假设标记
有一个主题
字段,您可以在其中找到作为主题之一的“英语”
。但是你可以根据你的实际结构进行修改。谢谢,但它给了我#1221-错误地使用UNION和ORDER BY ERROR更好地将英语排除在五人小组之外,对吗?(所以你可能不会得到两次)看到了吗