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

问题描述 投票:0回答:1

作为参考,这是表的模式:强制转换(pid,mid,角色)

我想要做的是找到pid(s),使得他们在那个中间有5个不同的角色。也就是说,因为这是pid为actor id的actor的表,mid是电影ID,角色是他们扮演的角色,我想找到所有在各自的电影ID中具有5个不同角色的演员id。哪个可以不止一个,我也想要这些电影ID。

我不确定如何做到这一点,而不是说5个自联接,但我宁愿不这样做,因为这将是资源沉重。

Sample table data(casts table)

Sample result from query

先感谢您。

sql postgresql imdb
1个回答
0
投票

这是你想要的吗?

select pid, mid
from casts
group by pid, mid
having count(distinct role) = 5;
© www.soinside.com 2019 - 2024. All rights reserved.