簡體   English   中英

相同的數據,使用PARTITION BY和ROW_NUMBER時結果不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM