-3

我在表1中有这些数据

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 语句,以便在 ColB 中搜索相同的值,然后在 ColD 中搜索相同的值

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

我试过了

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

无论如何我可以使用一个 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 回答