[英]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.