使用imbd的er图,我需要找出每个演员活跃的时间段,通过列出演员在电影中主演的最早和最近一年,但仅限于主演过至少10部电影的演员。我写的部分是关于表演时期的,但一部电影至少有10部。我知道我应该数数到目前为止,我的答案是:
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
dsekswqp1#
请尝试以下操作。正如我的巴玛所指出的,你不需要左连接。
SELECT r.actor_id, min(m.year), max(m.year) FROM roles r GROUP BY r.actor_id Having count(*) >= 10
如果您必须更改角色的表结构以包含单个参与者执行多个角色的场景,那么您可能必须更改查询,如下所示:
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
1条答案
按热度按时间dsekswqp1#
请尝试以下操作。正如我的巴玛所指出的,你不需要左连接。
如果您必须更改角色的表结构以包含单个参与者执行多个角色的场景,那么您可能必须更改查询,如下所示: