2016-12-11 3 views
0

В настоящее время я изучаю SQL, и до сих пор я сталкиваюсь с несколькими проблемами. В частности, это: у меня есть университетская база данных (мы будем использовать таблицу EXAM, но в этом случае это не имеет значения).SQL-проблемы с агрегатными функциями и упорядочением

Я пытаюсь заказать учеников по среднему значению в финале. Он должен выглядеть следующим образом:

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

Терминал жалуется с «не одной функции группы» большую часть времени, и в этом случае «неверный идентификатор». Из того, что я понял, я не могу использовать две совокупные функции вместе, например

max(avg(score)) 

Почему это? как противостоять проблеме?

ответ

0

Вы не указали используемую СУБД. Таким образом, следующий не может точно соответствовать вашим потребностям ...

Вы не хотите, чтобы группы по AVG_SCORE ...

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

То, что вы действительно хотите, чтобы сгруппировать по STUDENT_ID, чтобы получить среднее на одного учащегося.

ORDER BY может использовать псевдоним столбца ...

+0

Sql плюс. Спасибо Шнуго, моя проблема здесь, я не понимал разницы между порядком и группой. Теперь имеет смысл. –

Смежные вопросы