2017-03-25 12 views
1

嗨,我剛剛接觸sql,並且遇到了這個問題。 我按平均分數的升序和合格率的降序對錶格子碼進行排序。 和代碼是如何在sql中按順序使用avg

select * 
from subjcode 
group by sno 
order by(select avg(score) from subjcode group by sno)asc ; 

,它從來沒有做過這alwats說,錯誤碼:1242。

下表名爲subjcode:

Sno  cno  score 
S001 C001 78.90 
S001 C002 82.90 
S001 C003 59.00 
S002 C001 80.90 
S002 C002 72.90 
S003 C001 81.90 
S003 C002 81.90 
S004 C001 60.90 

請有人可以幫助我感謝

回答

1

你並不需要把AVG()在另一個SELECT。剛:

ORDER BY AVG(score) 

但它沒有意義使用SELECT *當你分組。所有其他列將從組中的隨機行中選擇。你應該這樣做:

SELECT sno, AVG(score) AS avg 
FROM subjcode 
GROUP BY sno 
ORDER BY avg 
+0

謝謝先生它有很多幫助! – jack