2016-12-06 8 views
0

Я могу составить таблицу, которая показывает мне GPA каждого отдела, но я не уверен, как сделать его отображением только отдела с самым высоким GPA.Как перечислить Департамент с самым высоким GPA из таблицы со списком GPA?

Мой запрос:

SELECT avg(grade) as GPA, deptID from tblStudent s inner join tblTranscript t 
ON t.studentid = s.studentid 
group by deptID 
+0

добавить 'ORDER BY AVG (класс) DESC LIMIT 1', чтобы получить 'deptID' с максимальным GPA, а затем присоединиться к таблице' department', чтобы получить данные отдела – ughai

ответ

1

Попробуйте это для MYSQL

SELECT deptID, GPA 
FROM(
    SELECT deptID, AVG(grade) AS GPA 
    FROM tblStudent s 
    INNER JOIN tblTranscript t ON t.studentid = s.studentid 
    GROUP BY deptID) t ORDER BY GPA DESC LIMIT 1 

Если вы используете SQL-Server

SELECT TOP 1 deptID, GPA 
FROM(
    SELECT deptID, AVG(grade) AS GPA 
    FROM tblStudent s 
    INNER JOIN tblTranscript t ON t.studentid = s.studentid 
    GROUP BY deptID) t ORDER BY GPA DESC 
+0

Это дает мне сообщение об ошибке синтаксиса в предложении ORDER BY – ChaCol

+0

Это должно работать, если вы используете MySQL, поэтому, пожалуйста, поделитесь данными примера и ожидаемым результатом. – Susang

+0

Я использую Access – ChaCol

0

есть 2 способа

ЯВНО:

SELECT MAX(avg(grade)) as GPA, deptID from tblStudent s inner join tblTranscript t 
ON t.studentid = s.studentid 
group by deptID 

ИЛИ

Как @ughai сказал в этом комментарии

SELECT avg(grade) as GPA, deptID from tblStudent s inner join tblTranscript t 
ON t.studentid = s.studentid 
group by deptID ORDER BY avg(grade) DESC LIMIT 1 
+0

в * комментарии –

+0

Первый говорит, что не может h ave aggregate function в выражении, а вторая говорит о синтаксической ошибке в предложении Order – ChaCol

+0

попробуйте ORDER BY GPA DESC LIMIT 1 вместо ORDER BY avg (grade) DESC LIMIT 1. Надеюсь, это поможет. –

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

  • Нет связанных вопросов^_^