我一直在使用下面的繼承查詢,我試圖刪除重複的行,當我第一次運行它時,我得到了一些意想不到的結果 - 我相信這跟我對於我的缺乏理解有關聲明的分區部分:SQL Server - 刪除重複行 - Partition By如何影響此查詢?
WITH CTE AS(
SELECT [Id],
[Url],
[Identifier],
[Name],
[Entity],
[DOB],
RN = ROW_NUMBER()OVER(PARTITION BY Name ORDER BY Name)
FROM Data.Statistics
where Id = 2170
)
DELETE FROM CTE WHERE RN > 1
有人可以幫助我明白我在做什麼與分區BY名稱這部分?這不會以任何方式限制查詢只在名稱字段中查找重複項,對嗎?我需要確保它正在查找記錄,其中CTE定義內的字段的所有5都是相同的,以使記錄被認爲是重複的。
然後,您需要將所有5添加到'partition by',因爲您當前的查詢只檢查重複的'name'。如果你想預覽,只需要將'delete'改爲'select'。 – SqlZim
謝謝@SqlZim。我知道將它作爲SELECT運行 - 這就是我所期望的奇怪結果。我編輯了我的帖子,以便更清楚地瞭解這一點。感謝您的信息。 – Stpete111
將「分區依據」視爲與「分組依據」類似可能會有所幫助 - 您爲每組分區的列獲得不同組的行號。 – ZLK