2015-02-09 44 views
0

,名称:选择上给出的列ID,选择一台不同的列值

1 | ONE | A 
    2 | TWO | A 
    3 | ONE | C 
    4 | ONE | C 
    5 | ONE | E 
    6 | ONE | E 
    7 | TWO | E 
    8 | TWO | H 

我需要一个查询将返回我的所有不同的名称值,其中有多个行,并且这些行包含在至少两个不同的选择器值。 对于上面的例子,我期望A和E的结果。因为只有一行,所以H不是预期的。因为所有行都有相同的选择器,所以不需要C。 我可以和having子句的选择列, 使用一组,但我就不能选择该名称作为结果......

我尝试

select selector 
from mytable 
group by selector 
having count(*) > 1 
+0

你试过什么现在呢? – mucio 2015-02-09 10:15:20

+0

从mytable中选择选择器 group by selector having count(*)> 1 – Holger 2015-02-09 10:17:14

+0

但我需要名称而不是选择器值... – Holger 2015-02-09 10:18:59

回答

2

使用Group byhaving条款。

而不是在count综合应用Distinct column_name*count骨料滤波器,它有一个以上的不同

select column3 from yourtable 
group by column3 
having count(distinct column2)>1 
+0

更改名称的选择器这太容易了;-) – Holger 2015-02-09 10:31:07

0

试一下这个群组:

select name 
    from Table1 
group by name 
    having count(distinct selector) > 1 

你可以看到一个演示here

+0

对不起,@NoDisplayName更快,但谢谢。 – Holger 2015-02-09 10:31:52

+0

然后将其删除:) 我修复了查询和演示,原来的一个正在运行,因为SQLFiddler中的数据库是SQLServer – mucio 2015-02-09 10:59:40