MySQL-计算平均值的百分比

MySQL-计算平均值的百分比,mysql,Mysql,我有下表: 平均值 id subject_id student_id value semester_id id class_academic_year_id student_id id class_id academic_year_id id name academic_year_id start_date end_date 班级\u学生 id subject_id student_id value semester_id id class_academic_year_id stude

我有下表:

平均值

id
subject_id
student_id
value
semester_id
id
class_academic_year_id
student_id
id
class_id
academic_year_id
id
name
academic_year_id
start_date
end_date
班级\u学生

id
subject_id
student_id
value
semester_id
id
class_academic_year_id
student_id
id
class_id
academic_year_id
id
name
academic_year_id
start_date
end_date
课程\学年

id
subject_id
student_id
value
semester_id
id
class_academic_year_id
student_id
id
class_id
academic_year_id
id
name
academic_year_id
start_date
end_date
学期

id
subject_id
student_id
value
semester_id
id
class_academic_year_id
student_id
id
class_id
academic_year_id
id
name
academic_year_id
start_date
end_date
我需要一个查询,以了解某一学年某一学科某一班级学生的毕业百分比(即平均值在5以上的学生的百分比;例如,假设学生的学期平均值为6,学期平均值为7,学期平均值为2,平均值为6.5)

这是当前的查询,但它只返回student_id和两个学期的平均值

select averages.student_id, avg(value) from averages
inner join semesters on semesters.id = averages.semester_id
inner join academic_years on academic_years.id = semesters.academic_year_id

inner join classes_students on classes_students.student_id = averages.student_id
inner join classes_academic_years   on classes_academic_years.id = classes_students.class_academic_year_id

where averages.subject_id = '66' 
and academic_years.id = 3
and classes_academic_years.academic_year_id = academic_years.id
and classes_academic_years.class_id = 259

group by averages.student_id

我希望结果是74.5%左右。有什么方法可以实现这一点吗?

您应该使用该查询并按类左键联接它

SELECT COUNT(*) FROM classes_students GROUP BY class_academic_year_id ...
这样你就有了COUNT(graded)/COUNT(*),这是一个介于0和1之间的数字,所以你只需要将它乘以100,你就得到了你的百分比