我使用以下查询根据全名查找表中的重复记录。 现在我需要根据全名从重复项中选择1个不同的conntactid。 这就是我所拥有的:
select c.namefml from contact c
where c.contactrecordtype = 'CONTACT'
group by c.namefml
HAVING COUNT (c.namefml)>1
但是,我似乎无法使用这个子查询来根据名字选择不同的联系人ID。如果我这样做,它会列出所有重复项的联系人ID,因为联系人ID是唯一的全部为所有重复的联系人。大约有180个不同的重复联系人,但共有445个重复联系人。
如何根据重复联系人的全名获得明确的联系人ID /联系人全名。
答案 0 :(得分:2)
由于您的姓名是您的相关信息,请使用MIN或MAX选择任何ID:
WITH Sample AS
(
SELECT 1 ID, 'ABC' Name UNION ALL
SELECT 2 ID, 'ABC' Name UNION ALL
SELECT 3 ID, 'XYZ' Name
)
SELECT MIN(ID) MinID, Name, COUNT(*) Duplicates
FROM Sample
GROUP BY Name
结果
MinID Name Duplicates
1 ABC 2
3 XYZ 1
答案 1 :(得分:0)
您正在尝试选择重复的值,在这种情况下为namefml
,然后在子查询中使用它来过滤记录。因此查询必然会返回与条件匹配的所有记录。
而是尝试使用MIN
或MAX
来获取表中不同的ID,然后在子查询中使用它来获得所需的结果。尝试像
SELECT MIN(c.contact-id)...