如何为其他列中的每个值选择具有5个不同值的行?

时间:2019-02-24 03:25:15

标签: sql postgresql imdb

作为参考,这是表的架构:强制类型转换(pid,mid,role)

我想做的是找到pid,以便它们在那个中间恰好具有5个不同的角色。也就是说,由于这是演员表,其中pid是演员ID,中是电影ID,角色是他们扮演的角色,因此我想查找所有电影ID,它们分别在的电影ID中具有5个不同的角色可以有多个,并且我还想要这些电影ID。

我不确定是否要像5个自我加入那样不说,但我不愿意这样做,因为那样会占用大量资源。

Sample table data(casts table)

Sample result from query

谢谢。

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

select pid, mid
from casts
group by pid, mid
having count(distinct role) = 5;