Создание Oracle View с использованием составной таблицы ключей

Я изучаю создание представления, которое содержит детали для фильмов. Я должен выбрать название категории и идентификатор, количество фильмов в каждой категории и среднюю арендную ставку для каждой категории. Проблема в том, что я не уверен, как это сделать, используя составную таблицу посередине. У меня проблема с сопоставлением средней "ренты_ставки" с категорией.название. Я использовал много кода, чтобы заставить эту работу работать, но это моя версия, к которой я подошёл ближе всего, а также макет таблицы, который я использовал:

SELECT category_id, category.name, COUNT(category.film), AVG(rental_rate)
  FROM film_category 
  FULL OUTER JOIN category USING (film_category.category_id)
  FULL OUTER JOIN film USING (film_category.film_id)
  GROUP BY category_id;

Отображение таблицы для проблемы.

Ошибка, которую я сейчас получаю: (category.name) не является групповой функцией.


person Cornelis    schedule 24.05.2014    source источник


Ответы (1)


Добавьте category.name в предложение GROUP BY:

SELECT category_id, category.name, COUNT(category.film), AVG(rental_rate)
  FROM film_category 
  FULL OUTER JOIN category USING (film_category.category_id)
  FULL OUTER JOIN film USING (film_category.film_id)
  GROUP BY category_id, category.name;
person Community    schedule 24.05.2014
comment
Можете ли вы объяснить, почему мне нужно category.name. Это только для будущих пользователей. - person Cornelis; 25.05.2014
comment
Все столбцы без аналитических функций из предложения select должны повторяться в GROUP BY. Дополнительную информацию об этом можно найти на странице docs.oracle.com/javadb/10.6. .1.0/ref/rrefsqlj32654.html. Я очень ценю блог psoug.org - psoug.org/library.html - person ; 25.05.2014