我在表中有重複記錄。我需要能夠識別唯一的唯一標識符,所以我可以從表中刪除它。如何識別重複記錄的唯一標識符?
我知道有一個重複的唯一方法是從列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