2016-09-07 2 views
-4

enter image description here평균이

위의 그림은 나의 테이블의 스냅 샷, 난의 합계의 평균을 계산하는 방법에 대한 도움이 필요 각 학생의 모든 과목에 대한 시험 유형. 그것이 의미가 있는지 모른다. 이 같은; (모든 과목)

home_work + class_work + 테스트 + 시험 = 총 학생에 대한 다음

:

AVG (총 (AGRIC) + 합계 (B.std) + 합계 (Econs) + 합계 (F & N)) = 평균

그리고 출력이 가장 높은 점수 순으로 낮게 표시되어야합니다.

FIRST_NAMELAST_NAMEOverall_TotalOverall_Average

난 정말 어떤 도움을 주셔서 감사합니다 것입니다, 왜냐하면 여전히 MySQL의 아주 새로운 오전. student_id에 의해

SELECT student_id, AVG (home_work + class_work + 테스트 + 시험) 점수 그룹에서 AS 평균;

나는 마지막으로 다음 명령을 시도

그리고 그것은 아래 사진에서 "평균"에 대해 내가 원하는 정확한 출력을주었습니다. [enter image description here

그러나 나는 여전히 student_info 테이블에서 FIRST_NAME과 LAST_NAME을 추가 지원이 필요합니다. 표는 학생/주제 당 하나의 행이 점수 가정

+1

1. 샘플 데이터 ** 및 **을 샘플 데이터를 기준으로 예상 출력을 텍스트로 추가하십시오. 그러나 sqlfiddle은 더 좋을 것입니다. 2. Pls에는 "코드 제공"느낌을 피하기 위해 시도한 내용도 포함됩니다. – Shadow

+0

AVG (총 (Agric) + 총 (B.std) + 총 (Econs) + 총 (F & N)의 결과) 기록/학생이 1 명이기 때문에 항상 합계 (Agric) + 합계 (B.std) + 합계 (Econs) + 합계 (F & N)가됩니다. AVG (Agric + B.std + Econs + F & N)를 원한다고 말하면 기본적으로 간단한 조인과 2 개의 집계 함수 및 그룹이 필요합니다. – Shadow

+0

은 계산 결과를 제대로받지 못했다는 진술입니까? – zee

답변

0

, 당신은 시도 할 수 있습니다 :

Overall_Average는 4 개 점수의 합계의 평균을 계산합니다 MySQL의 이후 4로 나눈
SELECT 
    i.first_name, 
    i.last_name, 
    SUM(s.home_work + s.class_work + s.test + s.exam) AS Overall_Total, 
    AVG(s.home_work + s.class_work + s.test + s.exam)/4 AS Overall_Average 
FROM scores s 
JOIN student_info i ON s.student_id = i.student_id 
GROUP BY s.student_id 
ORDER BY Overall_Average DESC 

(이후 그들을 함께 추가하면) 4 개의 별도 점수로 보지 않을 것입니다.

0

귀하의 도움에 감사드립니다. 결국 내 문제가 해결되었습니다.

SELECT student_info.first_name, student_info.last_name, scores.student_id, AVG (home_work class_work + + + 시험 시험) 득점 FROM AS 평균 student_info WHERE GROUP BY가 ORDER BY 을 student_id student_info.student_id = scores.student_id 평균 DESC;

+0

학생의 위치/계급을 표시하는 다른 열을 보여주는 방법에 대한 아이디어를주십시오 ??? 최고 평균 점수에서 최저 점수. – Edunge

관련 문제