练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
1050.合作至少三次的演员和导演
表:ActorDirector
列名 | 类型 |
---|---|
actor_id | int |
director_id | int |
timestamp | int |
timestamp 是这张表的主键(具有唯一值的列).
编写解决方案找出合作过至少三次的演员和导演的 id 对 (actor_id, director_id)
首先梳理一下表内容,题目只给了一个演员导演表,记录了演员id,导演id,以及合作的时间。其次分析需求,需要找到至少合作过3次的演员和导演,我们可以看到表中只有一个主键就是时间,意思每个时间点都是独一无二的,可以通过计数时间点,来判断是否至少合作过三次。所以这里首先可以group by 演员id和导演id,然后统计timestamp大于等于3的演员id和导演id。
select actor_id,director_id
from ActorDirector
group by actor_id,director_id
having count(timestamp) >=3
能运行就行。