一、數據庫中的去重操作(刪除數據庫中重復記錄的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