![](/img/trans.png)
[英]SQL using ROW_NUMBER() OVER PARTITION BY x ORDER BY y when x and y are the same for multiple rows
[英]Same data, different results when using PARTITION BY and ROW_NUMBER
我一直在嘗試編寫腳本來查找重復的記錄。 但是,這將要求其中一個字段相同,而另一個字段不同。 我在SELECT中使用以下2行。
ROW_NUMBER () OVER (PARTITION BY col_1 ORDER BY col_2) AS 'ROWNUMBER',
ROW_NUMBER () OVER (PARTITION BY col_2 ORDER BY col_1) AS 'ROWNUMBER2',
一旦使用了它,我便從兩列均大於1的TEMP表中選擇結果。現在,這已經產生了在一個環境中正確的結果,但是當在另一個環境中運行同一腳本時(周末備份),我的結果是不同的。
有人可以向我解釋為什么會發生這種情況嗎?
提前謝謝了。
為什么使用row_number? 完全沒有必要,您應該使用group by:
SELECT col_1,col_2 from YourTable
group by col_1,col_2 having count(*) > 1
該查詢將返回所有重復的行
編輯:如果您有一個第三列,您正在根據它確定誰是dup,則應該執行以下操作:
SELECT col_3 from yourTable
group by col_3 from yourTable having count(*) > 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.