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

Търся създаването на изглед, който съдържа подробности за филми. Трябва да избера името и идентификатора на категорията, броя на филмите във всяка категория и средната наемна ставка за всяка категория. Проблемът е, че не съм сигурен как да направя това с помощта на съставната таблица в средата. Имам проблем със съпоставянето на средната "rental_rate" с category.name. Използвах много код, за да направя тази работа, но това е моята версия, до която се доближих най-много, както и оформлението на таблицата, което използвах:

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
Всички колони без аналитични функции от клаузата за избор трябва да се повторят в GROUP BY. Моля, намерете повече информация за това на docs.oracle.com/javadb/10.6 .1.0/ref/rrefsqlj32654.html. Оценявам много блога на psoug.org - psoug.org/library.html - person ; 25.05.2014