SQL - Нахождение наивысшей средней оценки студентов - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь отобразить максимальные средние оценки; однако, я не могу заставить его работать.

Я могу получить средние оценки для отображения, используя:

select max(avg_mark)
from (select round(avg(value),2) as avg_mark from mark;

Schema diagram for reference

Выход I я получаю = 82,73

Ожидаемый результат = 85,67

Я не уверен, где я иду не так, я должен округлить максимум (avg_mark), как показано ниже

select round(max(avg_mark),2)
from (select avg(value) as avg_mark from mark;

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Ваш код будет работать с правильным подзапросом:

select max(avg_mark)
from (select round(avg(value), 2) as avg_mark
      from mark
      group by student_id
     ) sm;

Я не фанат вложенных функций агрегирования Oracle - он нестандартный и не принят ни одной другой базой данных.

0 голосов
/ 04 апреля 2020

ОБНОВЛЕННЫЙ ПОСТ:

РАБОЧИЙ ОТВЕТ:

Хорошо, все заработало. Не нужно слишком много хлопот

select round(max(avg(value)),2) as avg_mark from mark group by student_id;

Функция округления для указания десятичного знака.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...