【问题标题】:SQL select the only rows with only a certain values in themSQL选择其中只有特定值的唯一行
【发布时间】:2016-10-12 01:41:11
【问题描述】:

我也有同样的问题:SQL select rows with only a certain value in them

但我发现的解决方案仅适用于给定的一个值,我的意思是我希望它适用于多个值 {2 或 +},例如:

Col 1 Col 2 Col 3
1       A     1
2       A     2
3       B     1
4       C     1
5       C     2
6       D     1 
7       C     3 

我想获取仅包含 cols3 = 1 和 cols3 =2 的所有行,(仅值 1 和 2)并且输出将是:给定表的“A”,我不想有 C,因为它cols 3 != 的另一个值是 1 或 2, 链接中的解决方案只允许对一个值执行此操作,但我想将其扩展到 2 个值或加值,有人可以帮我吗:D

【问题讨论】:

  • 为什么不是“D”?
  • "D" 只有 col3 = 1?
  • D 只有 cols3=1 ,如果我们有另一行 'D'--'2' ,它将是 D

标签: mysql sql row unique multiple-columns


【解决方案1】:

您可以为此使用conditional aggregation

select col2
from yourtable
group by col2 
having sum(col3=1) > 0 
  and sum(col3=2) > 0
  and sum(col3 not in (1,2)) = 0 

【讨论】:

  • 这个解决方案对我有用,我可以扩展很多值,谢谢
【解决方案2】:

选择第 2 列 从表 哪里(第 3 列 =1 或列 3 =2) 并且第 2 列不在 (选择列 2 从表 哪里(col 3 2 AND 列 3 1));

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多