為了對重複資料進行實驗,下面建一個設計不太好(沒有主鍵)表并插入了一些重複資料:
為了驗證表确實有重複資料,下面查詢運用了一個group by 和having 子句隻傳回重複行,并對副本計數:
結果:

下面是運用視窗化删除重複行:
這種方法的關鍵是運用視窗化的,有row_number()函數和分區的over()子句。每個新分區會重新編号。設定over()子句為partition by每個要檢查重複資料的列。在這種情況下每一列都會進行檢查。
運作視窗化查詢,首先顯示方法如何應用于行号:
每一個重複行都有一個比1大的rn值,是以,删除副本是比較容易的:
結果:
執行完上面語句後,下面用一條select語句測試删除重複資料的結果: