2014-10-10 63 views
0

我已經嘗試過在這裏搜索答案,但迄今爲止它一直是失敗的原因。 我是第一個SQL類的學生。如何在不添加新列的情況下查找整體平均評分

這是問題。

提供一個字母順序的學生(學生證和姓名),其平均總分爲 ,C等於或低於(小於80)。 該名稱應該是一列,姓氏第一,然後按姓氏和名字排序。

這是我的代碼。

SELECT GRADE.STUDENT_ID,Last_Name || ', '||First_Name AS Student_Name 
FROM GRADE,Student 
WHERE Student.STUDENT_ID = GRADE.STUDENT_ID 
HAVING AVG(Numeric_Grade) <= 80 
ORDER BY Last_Name,First_Name; 

我使用HAVING子句得到這個錯誤信息:ORA-00937:不是單組函數。

我不知道怎麼弄的平均等級...任何幫助,將不勝感激 預先感謝您

+1

如果你得到一個ORA錯誤,首先在詢問之前搜索原因。 http://www.ora-error.com/這是一個開始的好地方。 – Nitish 2014-10-10 06:26:47

回答

0

你應該GROUP BY子句調用HAVING或任何agregate功能

例如前:

SELECT GRADE.STUDENT_ID,Last_Name || ', '||First_Name AS Student_Name 
FROM GRADE,Student 
WHERE Student.STUDENT_ID = GRADE.STUDENT_ID 

--Important 
GROUP BY Student.STUDENT_ID 

HAVING AVG(Numeric_Grade) <= 80 
ORDER BY Last_Name,First_Name; 

然後你就可以到你的SELECT子句中加入AVG呼籲爲例AVG(Numeric_Grade) as AverageGrade。您可能需要向GROUP BY子句添加更多列以便能夠在SELECT子句中訪問它們。

+0

我懂了,增加了幾個專欄。非常感謝!!!!! – 2014-10-10 05:12:05

相關問題