2016-12-11 11 views
0

現在、SQLの学習中です。これまでにいくつかの問題が発生しています。特にこの1つは:私は大学データベースを持っています(私たちはEXAMテーブルを使用しますが、実際はこの場合は問題ありません)。集計関数と順序付けに関するSQLの問題

私は最終的に平均で学生を注文しようとしています。 それは次のようになります。

SELECT STUDENT_ID, AVG(SCORE) AS AVG_SCORE FROM EXAM GROUP BY AVG_SCORE; 

端子が「ない単一のグループ機能」ほとんどの時間、この場合の「無効な識別子」と文句を言います。私が理解したものから、私は

max(avg(score)) 

好きな理由つまり、2つの集計関数を使用することはできませんか?どのように問題に対処するには?

答えて

0

使用しているRDBMSを指定していません。だから、平均値を得るためにSTUDENT_IDによって何が本当にしたいことはグループにある

SELECT STUDENT_ID, AVG(SCORE) AS AVG_SCORE 
FROM EXAM 
GROUP BY STUDENT_ID 
ORDER BY AVG_SCORE 

...まさに...あなたのニーズに適合しない場合があります

あなたはAVG_SCOREでグループにしたくない、次の学生1人当たり。

ORDER BYは、列の別名...

+0

Sql plusを使用できます。ありがとうShnugo、私の問題はここで私は順序とグループの違いを理解していないです。今や意味をなさない –