我正在尝试编写一个精选语句来展示所有Sci-Fi相关类型中的前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
答案 0 :(得分: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
答案 1 :(得分:-1)
尝试将WHERE
替换为HAVING
。
使用WHERE
,它会选择所有可能拥有Sci-Fi的作者。 HAVING
会根据您的需要限制查询。