Написание оператора для создания отчета с использованием группировки по группам, но не по группам выражений.

0

Вопрос: отчет со списком всех курсов и их общего количества посещений, которые посещают более 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
    Вы используете MySQL или Oracle DB?
  • 0
    Возможный дубликат ORA-00979 не группа по выражению
Показать ещё 3 комментария
Теги:

1 ответ

0
Лучший ответ

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

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

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

  • 0
    @OubaidGhoorun, пожалуйста, друг.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню