SQL IMDB 网站查询以查找出演至少 10 部电影的演员

SQL IMDB website query to find actors starred in at least 10 movies

使用 IMBD 的 ER 图我需要找到每个演员活跃的时间段,通过列出演员出演电影的最早和最近年份,但仅限于出演过的演员在至少 10 部电影中。

我写了关于表演时期的部分,但至少有 10 部电影之一。我知道我应该使用 HAVING COUNT

我目前的回答是:

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
LEFT JOIN movies m ON r.movie_id = m.id 
GROUP BY r.actor_id

尝试以下操作。正如我的 Barmar 所指出的,您不需要左连接。

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
GROUP BY r.actor_id
Having count(*) >= 10

如果您必须更改角色的 table 结构以包含单个演员执行多个角色的场景,那么您可能必须更改查询,如下所示:

SELECT r.actor_id, min(m.year), max(m.year) 
FROM roles r 
GROUP BY r.actor_id
Having count(distinct r.movie_id) >= 10