在SQL中的多个列之间的不同列之后,在单个列上获取重复

时间:2017-05-22 18:31:50

标签: sql

我有一个看起来像这样的表:

name | id
-----------
A 1
A 1
B 2
C 1
D 3
D 3
F 2

我想返回id&1;和1,因为它们在名称上是重复的。我不想返回3,因为它与D 3截然不同。

基本上,我正在考虑先进行查询以获得明显的配对,因此上述内容会缩小为

name | id
-----------
A 1
B 2
C 1
D 3
F 2

然后在id列上执行重复查找。但是,我很难找到构造该查询的正确语法。

1 个答案:

答案 0 :(得分:3)

您应该能够使用GROUP BY以及计算不同名称的HAVING子句来获得所需的结果。 HAVING子句将过滤那些具有多个不同名称的ID:

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

这是demo