我在表中有重复记录。我需要能够识别唯一的唯一标识符,所以我可以从表中删除它。如何识别重复记录的唯一标识符?
我知道有一个重复的唯一方法是从列subject
和description
所以如果至少有2个相同的主题和相同的描述,我需要删除一个,并留下一个。
所以我能够得到重复记录的列表,但我无法获得唯一标识符以便能够删除它。
这是我所做的识别重复记录。
SELECT
p.accountid, p.subject, p.description, count(*) AS total
FROM
activities AS p
WHERE
(p.StateCode = 1) AND p.createdon >= getdate()-6
GROUP BY
p.accountid, p.subject, p.description
HAVING
count(*) > 1
ORDER BY
p.accountid
有一列record_id
其中包含每个记录的唯一标识符。但如果我在我的select语句中添加了record_id
,那么我得不到结果,因为它不可能具有重复的唯一标识符
如何使用SQL Server获得record_id
?
注:RECORD_ID不是一个整数,它是像 “D32B275B-0B2F-4FF6-8089-00000FDA9E8E”
感谢
谢谢你的回答,但RECORD_ID不是整数它是什么:
如果这看起来是正确的,你可以将其替换选择像这样“D32B275B-0B2F-4FF6-8089-00000FDA9E8E”我得到这个错误与第二个代码操作数数据类型uniqueidentifier对于最小操作符无效。 – Mike
@Mike。 。 。在这种情况下,你可以使用'MIN(cast(record_id as varchar(255)))。 。 .'。 MIN()会返回一个任意的值来保存。那是问题吗?如果是这样,你将如何选择记录ID保留哪些? –
非常感谢你的工作,但是请你向我解释一下干什么和分区?谢谢 – Mike