【问题标题】:How do I select rows with 5 distinct values for each value in other columns?如何为其他列中的每个值选择具有 5 个不同值的行?
【发布时间】:2019-07-17 19:23:21
【问题描述】:

作为参考,这是表的架构:casts (pid, mid, role)

我想要做的是找到 pid(s),使它们在中间有 5 个不同的角色。也就是说,由于这是一个演员表,其中 pid 是演员 ID,mid 是电影 ID,角色是他们扮演的角色,我想找到在各自的电影 ID 中恰好有 5 个不同角色的所有演员 ID可能不止一个,我也想要这些电影 ID。

如果不说 5 个自联接,我不确定如何执行此操作,但我宁愿不这样做,因为这会占用大量资源。

Sample table data(casts table)

Sample result from query

提前谢谢你。

【问题讨论】:

  • 请添加示例表数据和您期望的确切输出。
  • 我已经按照你的要求做了。

标签: sql postgresql imdb


【解决方案1】:

这是你想要的吗?

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

【讨论】:

    猜你喜欢
    • 2017-11-11
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2016-06-15
    • 2012-11-08
    • 1970-01-01
    • 2014-11-25
    • 2016-09-24
    相关资源
    最近更新 更多