在SQL中查找重复项
我有一个大表,其中包含以下关于用户的数据在SQL中查找重复项,sql,tsql,Sql,Tsql,我有一个大表,其中包含以下关于用户的数据 social security number name address 我想在表中找到所有可能的重复项 其中ssn相等,但名称不相等 我的尝试是: SELECT * FROM Table t1 WHERE (SELECT count(*) from Table t2 where t1.name <> t2.name) > 1 SSN上的分组应该可以做到这一点 ..或者如果每个ssn有许多行,并且只想查找重复的名称 ... HAVIN
social security number
name
address
我想在表中找到所有可能的重复项
其中ssn相等,但名称不相等
我的尝试是:
SELECT * FROM Table t1
WHERE (SELECT count(*) from Table t2 where t1.name <> t2.name) > 1
SSN上的分组应该可以做到这一点 ..或者如果每个ssn有许多行,并且只想查找重复的名称
...
HAVING COUNT(DISTINCT name) > 1
编辑,哎呀,误解了
SELECT
ssn
FROM
Table t1
GROUP BY
ssn
HAVING MIN(name) <> MAX(name)
这将处理两个以上具有重复ssn的记录:
select count(*), name from table t1, (
select count(*) ssn_count, ssn
from table
group by ssn
having count(*) > 1
) t2
where t1.ssn = t2.ssn
group by t1.name
having count(*) <> t2.ssn_count
你的回答似乎给了我一行名称相同的行。我想要没有名称的行equal@Mark当前位置标题说查找误导我的副本。更正。我想我需要自联接。我喜欢最小/最大的想法。非常感谢。
select count(*), name from table t1, (
select count(*) ssn_count, ssn
from table
group by ssn
having count(*) > 1
) t2
where t1.ssn = t2.ssn
group by t1.name
having count(*) <> t2.ssn_count