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
使用 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