簡體   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