-3

これらのデータはtable1にあります

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

ColB で同じ値を検索し、次に ColD で同じ値を検索するような SQL ステートメントを作成しようとしています。

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

私は試した

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

1つのSQLステートメントを使用して、ColBとColDに表示される同様のデータを除外できる方法はありますか?

4

1 に答える 1

4

「類似の列」:

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

「類似の列」を持つデータ:

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
于 2012-08-30T07:19:46.443 に答える