2015-02-09 40 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