Tsql 查找重复项

Tsql 查找重复项,tsql,duplicates,sql-update,Tsql,Duplicates,Sql Update,免责声明:我仍在学习SQL,所以如果我的问题被认为是业余的或者是一个非常简单的答案,我深表歉意。我没有受过正式训练。我在自学。谢谢 我正在寻找一个合适的查询来定位表中的重复项。以下是我目前拥有的: 选择[名称] 来自[02Kids]作为Tmp 按[名称]分组 计数(*)大于1的 按名称订购asc 这……有点管用。当特定的“名称”出现多次时,它会返回结果。虽然我也有一个查询,但它发生的次数并不相关 我遇到的问题是,这实际上是一个更大的更新查询的一部分,虽然它也起作用,但我发现我的副本并不都是“真正

免责声明:我仍在学习SQL,所以如果我的问题被认为是业余的或者是一个非常简单的答案,我深表歉意。我没有受过正式训练。我在自学。谢谢

我正在寻找一个合适的查询来定位表中的重复项。以下是我目前拥有的:

选择[名称]

来自[02Kids]作为Tmp
按[名称]分组
计数(*)大于1的

按名称订购asc

这……有点管用。当特定的“名称”出现多次时,它会返回结果。虽然我也有一个查询,但它发生的次数并不相关

我遇到的问题是,这实际上是一个更大的更新查询的一部分,虽然它也起作用,但我发现我的副本并不都是“真正”的副本

更具体地说,下面是一个使用简单的select查询提取某些数据的示例,其中指定了一个名称:

注意每组结果的CustNo列。虽然“名称”在每一组结果中都匹配,但第一组的CustNo不同。这些不是真正的重复,因为它们不属于同一客户

是否有任何方法可以执行某种比较,只返回CustNo相同的名称

SELECT [Name], [LocNo]

FROM [02Kids] As Tmp
GROUP BY [LocNo]
HAVING Count(*)>1

order by Name asc
或者您甚至可以在GROUPBY子句中放置多个字段

SELECT [Name], [LocNo]

FROM [02Kids] As Tmp
GROUP BY [LocNo], [Name]
HAVING Count(*)>1

order by Name asc
你只想看名字吗

SELECT [Name] from
( SELECT [Name], [LockNo]
  FROM [02Kids] As Tmp
  Group BY [LocNo]
  HAVING Count(*) > 1
)
或者您甚至可以在GROUPBY子句中放置多个字段

SELECT [Name], [LocNo]

FROM [02Kids] As Tmp
GROUP BY [LocNo], [Name]
HAVING Count(*)>1

order by Name asc
你只想看名字吗

SELECT [Name] from
( SELECT [Name], [LockNo]
  FROM [02Kids] As Tmp
  Group BY [LocNo]
  HAVING Count(*) > 1
)

您还需要将另一列包含到您的
分组中,并按

SELECT [Name],[CustNo], Count(*) AS [Count]
FROM [02Kids] As Tmp
GROUP BY [Name], [CustNo]
HAVING Count(*)>1
ORDER BY [Name] ASC, [CustNo] ASC, Count(*) DESC

您还需要将另一列包含到您的
分组中,并按

SELECT [Name],[CustNo], Count(*) AS [Count]
FROM [02Kids] As Tmp
GROUP BY [Name], [CustNo]
HAVING Count(*)>1
ORDER BY [Name] ASC, [CustNo] ASC, Count(*) DESC

尝试以下操作以显示所有副本:

SELECT LocNo, CustNo, 02Kids.name FROM 02Kids
INNER JOIN (SELECT name FROM 02Kids
GROUP BY name HAVING count(*) > 1) dup 
ON 02Kids.name = dup.name;

尝试以下操作以显示所有副本:

SELECT LocNo, CustNo, 02Kids.name FROM 02Kids
INNER JOIN (SELECT name FROM 02Kids
GROUP BY name HAVING count(*) > 1) dup 
ON 02Kids.name = dup.name;

第一个不起作用,因为Name不是groupby的一部分,第二个不是OP想要的(CustNo)。我改了。第一个不起作用,因为Name不是group by的一部分,第二个不是OP想要的(CustNo)。没错,忽略了那个。我改了。