使用IMBD的ER图,我需要找到每个 Actor 活跃的时间段,通过列出 Actor 出演电影的最早和最近年份,但仅限于出演过的 Actor 至少 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
如果您必须更改角色的表结构以包含单个 Actor 执行多个角色的场景,那么您可能需要更改查询,如下所示:
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
关于mysql - SQL IMDB 网站查询查找出演至少 10 部电影的 Actor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51292008/