2012-08-30 85 views
-3

我在table1的這些數據SQL過濾表中有類似價值

table1 
ColA ColB ColC ColD 
    A  B  C  D 
    A  B  G  F 
    A  B  C  G 
    G  B  C  F 
    A  B  C  H 

我想創建一個SQL statment,從而尋求在寒冷

table1 
ColA ColB ColC ColD 
A  B  G  F 
G  B  C  F 
在COLB相同的值,然後同樣的值

我試圖

select * from table1 where ColB = ColB and ColD = ColD. 

反正我有可以過濾掉類似的數據出現在COLB和寒冷使用一個SQL STA tement?有 「呈三角列」

select colB, ColD 
from table1 
group by colB, ColD 
having count(*) > 1 

數據:

+1

不知道你的問題是什麼,你需要的結果是什麼。你能詳細說明嗎? – Maarten

+0

A B G F和A B C F –

+0

我不清楚你是如何從你的餐桌數據得到你想要的結果?沒有真正的模式可以引人注目,說G B C F也應該在你的結果中,因爲它是colA中唯一一個有G的...? – Najzero

回答

4

「類似欄目」

select * 
from table1 
join ( select colB, ColD 
    from table1 
    group by colB, ColD 
    having count(*) > 1 
) a on table1.colB = a.colB and table1.colD = a.colD 

另一種方法是:

select * from (
    select 
    s.*, 
    count(*) over (partition by colB, ColD) as cnt 
    from table1 s 
) 
where cnt > 1 
+0

謝謝。我想你明白我的意思。它的工作! –