我对涉及count的特定select语句遇到很大困难。我应该做的是:
对于每个电影类别,现在投影电影类别名称和该类别中电影的视频数量。
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
但我无法弄明白。希望有人能指出我正确的方向!
答案 0 :(得分: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;