平均

2016-09-07 18 views
-4

enter image description here平均

上記PICは私のテーブルのスナップショットですが、私はの和の平均値を計算する方法について支援が必要各生徒のすべての科目のテストタイプ。それが意味をなさないかわからない。このようなもの;

各学生のためそしてhome_work + class_work +テスト+試験=合計(すべての被験者について)

AVG(合計(Agric)+合計(B.std)+合計(Econs) +合計(F & N))=平均

そして、出力が最高から最低の順になっている必要があります。

first_nameのlast_nameのOverall_TotalOverall_Average

私は本当に任意の助けをいただければ幸いです、COSはまだMySQLのに非常に新しいです。

私は最終的に次のコマンドを試みた:STUDENT_ID、AVG(home_work + class_work +テスト+試験)

はSELECT STUDENT_ID BYスコアグループから平均として。

そして、それは私が下の写真の「平均」のために欲しかった正確な出力をくれました。 [enter image description here

は、しかし、私はまだstudent_infoテーブルからFIRST_NAMEとLAST_NAMEを追加する援助を必要としています。あなたのスコア表を想定し

+1

1.サンプルデータ**と**をサンプルデータに基づいて予想される出力をテキストとして少なくとも追加しますが、sqlfiddleはさらに優れています。 2. Plsには、「コードを教えてください」という気持ちを避けようとしたことも含まれています。 – Shadow

+0

AVG(Total(Agric)+ Total(B.stst)+ Total(Econs)+ Total(F&N)あなたはレコード/学生が1人いるので、常にTotal(Agric)+ Total(B.std)+ Total(Econs)+ Total(F&N)になります。私はあなたがAVG(Agric + B.std + Econs + F&N)を望んでいると言います。したがって、基本的に単純な結合、2つの集計関数とグループを必要とします。 – Shadow

+0

は、あなたが計算を正しく行かないことを宣言していますか? – zee

答えて

0

が学生/主題ごとに単一の行を持って、あなたが試すことができます:

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 

MySQLはI以来(4人の得点の合計の平均値を計算しますので、Overall_Averageが4で割ってそれらを一緒に追加すると)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はBY ORDERをSTUDENT_ID student_info.student_id = scores.student_id平均DESC;

+0

生徒の位置/階数を表示する別の列を表示する方法のアイデアを教えてください???最高平均スコアから最低スコアまで。 – Edunge