我有一张很大的桌子,上面有关于用户的以下数据。
social security number name address
我想在ssn等于但名称不等于的表中找到所有可能的重复项
我的尝试是:
SELECT * FROM Table t1 WHERE (SELECT count(*) from Table t2 where t1.name <> t2.name) > 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)