0

我在处理涉及计数的特定选择语句时遇到了很大的困难。我应该做的是:

对于每个电影类别,现在投影电影类别名称,以及该类别中电影的视频数量。

select category_name, count(movie_num)
from movie, movie_category
where movie.category_code = movie_category.category_code
group by category_name;

虽然此语句产生了一些结果,但它并没有预测正确数量的结果。我从上面的陈述中得到:

CATEGORY_N COUNT(MOVIE_NUM)
---------- ----------------
Action                    7
Classic                   4
Family                    4
Drama                     4
Comedy                    1

尽管您看不到我的表格,但希望这些表格能让您了解它们是什么:

Movie(MOVIE_NUM, movie_title, movie_director_lname, movie_yr_released, movie_rating,
category_code)
foreign key(category_code) references movie_category

Movie_category(CATEGORY_CODE, category_name)

最后,这就是我应该得到的:

CATEGORY_N   COUNT(*)                                                           
---------- ----------                                                           
Action             20                                                           
Family             10                                                           
Classic             6                                                           
Drama               5                                                           
Comedy              1    

但我无法弄清楚。希望有人能指出我正确的方向!

4

1 回答 1

1

MOVIE_NUM 可能包含空值。

利用

SELECT category_name, COUNT (*)
  FROM movie, movie_category
 WHERE movie.category_code = movie_category.category_code
GROUP BY category_name;

或者

SELECT category_name, COUNT (NVL (movie_num, 1))
  FROM movie, movie_category
 WHERE movie.category_code = movie_category.category_code
GROUP BY category_name;
于 2013-11-01T11:14:46.167 回答