2014-06-23 16 views
0

의 비율을 계산 나는 다음과 같은 테이블이 있습니다MySQL은 - 평균

평균

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 %의 결과를 원한다. 이것을 달성 할 수있는 방법이 있습니까?

답변

0

당신은 그 쿼리를 사용해야하고 클래스에 의해 왼쪽에 참여해야합니다. 당신이 COUNT있을 것이다 이런 식으로

SELECT COUNT(*) FROM classes_students GROUP BY class_academic_year_id ... 

는 0과 1 사이의 숫자입니다,/COUNT (*)를 (졸업), 그래서 당신은 단지 100을 곱해야합니다 당신은 당신의 비율을해야합니다.