一尘不染

在SQL中查找重复项

sql

我有一张很大的桌子,上面有关于用户的以下数据。

social security number
name
address

我想在ssn等于但名称不等于的表中找到所有可能的重复项

我的尝试是:

SELECT * FROM Table t1
WHERE (SELECT count(*) from Table t2 where t1.name <> t2.name) > 1

阅读 157

收藏
2021-03-10

共1个答案

一尘不染

在SSN上进行分组应该做到这一点

~~~~

SELECT
   ssn
FROM
   Table t1
GROUP BY
   ssn
HAVING COUNT(*) > 1

..或如果每个ssn有很多行,而只想查找重复的名称)

...
HAVING COUNT(DISTINCT name) > 1

编辑,糟糕,被误解

SELECT
   ssn
FROM
   Table t1
GROUP BY
   ssn
HAVING MIN(name) <> MAX(name)
2021-03-10