數據庫的幾種去重方法總結


一、數據庫中的去重操作(刪除數據庫中重復記錄的SQL語句)主要有三種方法

(1)、rowid方法

(2)、group by 方法

(3)、distinct方法

1、用rowid方法

根據Oracle帶的rowid屬性,可以進行判斷是否存在重復語句;

(1)、查出表1和表2中name相同的數據

Select * from table1 a

Where rowid !=(select max(rowid)

       from table2 b

  Where  a.name1 = b.name1

  And  a.name2 = b.name2......)

(2)、刪除表1和表2 中name相同的所有數據

Delete from table1 a

Where rowid !=(select max(rowid)

 From table2 b

 Where  a.name1 = b.name1

 And  a.name2 = b.name2.......)

2、用group by方法

主要用於分組統計,一般都是使用在聚合函數中使用;

(1)、查數據

Select count(num), max(name) from student 列出表中的重復的記錄數和學生名字的屬性,

Group by num

Having count(num)>1 並按照num分組后找出表中num列出現次數大於一次的。

(2)、刪除數據

Delete from student

Group by num

Having count(num)>1

//刪除表中num列所有重復的數據

3、用distinct方法

一般用於比較小的表進行去重,會過濾掉多余的重復記錄,返回不重復的記錄或字段;

(1)、select distinct name

 From student 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM