0

我正在尝试编写一个选择语句来显示所有科幻相关类型中的前 10 名演员。相反,我得到了总体排名前 10 位的演员和他们拥有的所有头衔,而不仅仅是科幻小说(这是我想要的)。

select top 10 people_name as actor_name, count(tg_genre_name) as number_of_titles
from nf_people
    join nf_cast on people_id=cast_people_id
    join nf_titles on cast_title_id=title_id
    join nf_title_genres on title_id=tg_title_id
where tg_genre_name like '%Sci-Fi%'
group by people_name
order by number_of_titles desc
4

2 回答 2

0
SELECT TOP 10 M.actor_name,  count(*) as number_of_titles FROM
(
  SELECT people_name AS actor_name
  FROM nf_people
       JOIN nf_cast ON people_id=cast_people_id
       JOIN nf_titles ON cast_title_id=title_id
       JOIN nf_title_genres ON title_id=tg_title_id
  WHERE tg_genre_name LIKE '%Sci-Fi%'
) AS M
GROUP BY M.actor_name
ORDER BY count(*) DESC
于 2013-10-11T15:08:46.147 回答
-1

尝试替换WHEREHAVING.

它选择了所有可能拥有WHERE科幻小说的作者。 HAVING限制您正在查找的查询。

于 2013-10-11T15:09:11.300 回答