使用复合键表创建Oracle视图

使用复合键表创建Oracle视图,oracle,view,oracle11g,composite-key,Oracle,View,Oracle11g,Composite Key,我正在考虑创建一个包含电影细节的视图。我必须选择类别名称和id、每个类别的电影数量以及每个类别的平均租金。 问题是我不知道如何在中间使用组合表。我无法将平均“租金率”与category.name匹配。我使用了allot of code来完成这项工作,但这是我最接近的版本,以及我使用的表格布局: SELECT category_id, category.name, COUNT(category.film), AVG(rental_rate) FROM film_category FULL

我正在考虑创建一个包含电影细节的视图。我必须选择类别名称和id、每个类别的电影数量以及每个类别的平均租金。 问题是我不知道如何在中间使用组合表。我无法将平均“租金率”与category.name匹配。我使用了allot of code来完成这项工作,但这是我最接近的版本,以及我使用的表格布局:

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)不是组函数。

将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;

你能解释一下我为什么需要category.name吗。这仅适用于将来的用户。select子句中没有分析函数的所有列都应分组重复。请在上查找有关此的更多信息。我非常感谢psoug.org的博客-