Написание оператора для создания отчета с использованием группировки по группам, но не по группам выражений. - PullRequest
0 голосов
/ 25 октября 2018

Вопрос: отчет со списком всех курсов и их общего количества посещений, которые имеют более 5 посещений в каждом курсе, с использованием агрегатной функции с условием GROUP BY и «HAVING»

Заявление:

SELECT SUM(NO_OF_ATTENDANCES), COURSE_ID, EXERCISE_TYPE, COURSE_LOC
FROM I_COURSE
GROUP BY COURSE_LOC
HAVING SUM(NO_OF_ATTENDANCES) > 5;

Пожалуйста, помогите мне и скажите, что не так и почему ошибка получена.

Имя таблицы: I_COURSE

Атрибуты: COURSE_ID, EXERCISE_TYPE, COURSE_LOC, NO_OF_ATTENDANCES

1 Ответ

0 голосов
/ 25 октября 2018

Вам нужно просто сгруппировать по COURSE_ID как:

SELECT SUM(NO_OF_ATTENDANCES), COURSE_ID
FROM I_COURSE
GROUP BY COURSE_ID
HAVING SUM(NO_OF_ATTENDANCES) > 5;

Во-первых, достаточно столбца COURSE_ID для желаемого результата, и невозможно включить [неагрегированные] столбцы вВЫБЕРИТЕ список, которых нет в списке GROUP BY.

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