繁体   English   中英

MySQL-计算平均值的百分比

[英]MySQL - calculate percentage of averages

我有下表:

平均

id
subject_id
student_id
value
semester_id

classes_students

id
class_academic_year_id
student_id

classes_academic_years

id
class_id
academic_year_id

学期

id
name
academic_year_id
start_date
end_date

我需要一个查询来找出某个学年某个学科的某个班级的学生的毕业百分比(即,平均水平高于5的学生的百分比;例如,假设某学生的semester_id = 1的平均值为6并且semester_id = 2的平均值7,则平均值为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(GRADUATED)/ COUNT(*),即0到1之间的数字,因此您只需将其乘以100即可得到百分比。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM