返回特定列具有重复值的行

时间:2021-02-24 14:01:41

标签: sql sql-server tsql having-clause

从下表中,我想显示第 3 列中的值重复的两行:

<头>
ID Col2 Col3
1 123
2 b 123
3 c 14
4 d 65
5 e 65

这意味着我需要的查询应该返回 ID 为 1、2 和 4、5 的行。 我使用 having 编写查询:

SELECT *
FROM t1
INNER JOIN (SELECT col3 FROM t1
            GROUP BY col3
            HAVING COUNT(*) > 1) a
ON t1.col3 = a.col3

这个查询虽然只返回 1 和 4 行,例如,不是所有的重复。 我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的查询应该有效,但我建议使用窗口函数:

select t1.*
from (select t1.*, count(*) over (partition by col3) as cnt
      from t1
     ) t1
where cnt > 1;
相关问题