在SQL中查找重复项

Mar*_*ark 10 sql t-sql

我有一个大表,其中包含有关用户的以下数据.

social security number
name
address
Run Code Online (Sandbox Code Playgroud)

我想找到表中所有可能的重复项,其中ssn相等,但名称不是

我的尝试是:

SELECT * FROM Table t1
WHERE (SELECT count(*) from Table t2 where t1.name <> t2.name) > 1
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 14

SSN上的分组应该这样做

SELECT
   ssn
FROM
   Table t1
GROUP BY
   ssn
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

..或者,如果每个ssn有很多行,并且只想找到重复的名称)

...
HAVING COUNT(DISTINCT name) > 1 
Run Code Online (Sandbox Code Playgroud)

编辑,哎呀,误解了

SELECT
   ssn
FROM
   Table t1
GROUP BY
   ssn
HAVING MIN(name) <> MAX(name)
Run Code Online (Sandbox Code Playgroud)