postgresql在带有ID的列中查找重复项

时间:2018-02-05 16:14:10

标签: sql postgresql duplicates

例如,我有一张桌子说"姓名"其中有重复记录:

Id    |  Firstname
--------------------
1     |  John
2     |  John
3     |  Marc
4     |  Jammie
5     |  John
6     |  Marc

如何获取重复记录并使用其可接受的主键ID显示它们?

2 个答案:

答案 0 :(得分:1)

使用Count()Over()窗口聚合函数

Select * from
(
select Id, Firstname, count(1)over(partition by Firstname) as Cnt
from yourtable
)a
Where Cnt > 1

答案 1 :(得分:0)

SELECT t.*
FROM t
INNER JOIN
(SELECT firstname
 FROM t
 GROUP BY firstname
 HAVING COUNT(*) > 1) sub
ON t.firstname = sub.firstname

子查询可以解决问题。选择多次找到表格的名字,t。然后将这些名称连接回主表以拉入主键。