Oracle查詢重複資料並刪除,只保留一條記錄
前言
專案中,在“資源目錄-線上編目”中,資源項子表存在多條重發資料,需要進行資料清理,刪除重發的資料,最終只保留一條相同的資料。
操作的表名:R_RESOURCE_DETAILS
操作步驟
一、重複記錄根據單個欄位來判斷
1、首先,查詢表中多餘的重複記錄,重複記錄是根據單個欄位(FIELD_CODE)來判斷
select * from R_RESOURCE_DETAILS where FIELD_CODE in(select FIELD_CODE from R_RESOURCE_DETAILS group by FIELD_CODE having count(FIELD_CODE) >1)
2、刪除表中多餘的重複記錄,重複記錄是根據單個欄位(FIELD_CODE)來判斷,只留有rowid最小的記錄
delete from R_RESOURCE_DETAILS where (FIELD_CODE) in (select FIELD_CODE from R_RESOURCE_DETAILS group by FIELD_CODE having count(FIELD_CODE) >1) and rowid not in (select min(rowid) from R_RESOURCE_DETAILS group by FIELD_CODE having count(*)>1)
二、重復記錄根據多個欄位來判斷
1、查詢表中多餘的重複記錄(多個欄位)
select * from R_RESOURCE_DETAILS a where (a.FIELD_CODE,a.DTA_ITEM_NAME) in(select FIELD_CODE,DTA_ITEM_NAME from R_RESOURCE_DETAILS group by FIELD_CODE,DTA_ITEM_NAME having count(*) > 1)
2、刪除表中多餘的重複記錄(多個欄位),只留有rowid最小的記錄
delete from R_RESOURCE_DETAILS a where (a.FIELD_CODE,a.DTA_ITEM_NAME) in (select FIELD_CODE,DTA_ITEM_NAME from R_RESOURCE_DETAILS group by FIELD_CODE,DTA_ITEM_NAME having count(*) > 1) and rowid not in (select min(rowid) from R_RESOURCE_DETAILS group by FIELD_CODE,DTA_ITEM_NAME having count(*)>1)
3、查詢表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄
select * from R_RESOURCE_DETAILS a where (a.FIELD_CODE,a.DTA_ITEM_NAME) in (select FIELD_CODE,DTA_ITEM_NAME from R_RESOURCE_DETAILS group by FIELD_CODE,DTA_ITEM_NAME having count(*) > 1) and rowid not in (select min(rowid) from R_RESOURCE_DETAILS group by FIELD_CODE,DTA_ITEM_NAME having count(*)>1)
相關推薦
Oracle查詢重複資料並刪除,只保留一條記錄
前言專案中,在“資源目錄-線上編目”中,資源項子表存在多條重發資料,需要進行資料清理,刪除重發的資料,最終只保留一條相同的資料。操作的表名:R_RESOURCE_DETAILS操作步驟一、重複記錄根據單
sql 刪除表中多餘的重複記錄(多個欄位),只保留一條記錄
在網上呢~自己收集了一些關於這方面的知識~ 自己整理一下 1.查詢重複記錄 select * from 表名 where 重複欄位 in (select 重複欄位 from 表名 group
面試題:刪除資料庫中帶有重複欄位的記錄,只保留一條記錄
select * from tablename where 重複欄位1 in (select 重複欄位1 from tablename group by 重複欄位1,重複欄位2 having count(*)>1)。SQL重複記錄查詢方法:1、查詢表中多餘的重複記錄,重
SQL Server 刪除重複記錄,只保留一條記錄
有張表格之前沒有設計關鍵欄位的唯一約束,導致有時候執行插入操作時不小心執行了多次就出現了重複記錄,後面重新加入唯一約束,由於已經有了重複記錄,無法新增,需要先刪除重複記錄。 看了網上的一些刪除重複記錄的方法(好像都是轉載於同一篇文章,至少看了
oracle 查詢重複資料並且刪除, 只保留一條資料的SQL語句
delete from t_account where feedate in ( select feedate from t_account group by feeda
mysql sql 語句 查詢重複資料 並刪除重複資料 只保留一條
**#例1:根據手機號customer_id查詢所有重複的資料** SELECT * FROM aad_apply_main WHERE customer_id IN (
MySQL中刪除表中重複資料,只保留一條
以為通過命令直接刪除就可以了,總是報錯: delete from test where name in(select name from test as t having count(name)>1) 發現在這隻能建立臨時表格,方法1設計可行: 1. 首先先建立一
Oracle刪除冗餘資料,只保留一條
今天去面試,面試官提了一個問題,刪除oracle中的冗餘資料,只保留id最小的一條。當時沒有想明白,回來認真想了一下,總算有了點思路,現將sql貼出來,歡迎大家批評指正。 假設有這樣一個表city表,表中有兩個欄位,id和name。表中有10條資料。 需要刪除冗餘的資料,
oracle過濾某個欄位重複記錄,只獲取一條記錄
oracle過濾某個欄位重複記錄,只獲取一條記錄 一,首先想到: 1,關鍵字distinct 2,group by 3,MAX,MIN這樣的函式被稱為聚集函式,和GROUP搭配起來用 但均無法實現,執行結果如下 舉例: 表名:OffsiteOutreachTeam_Lis
mysql查詢重複資料只保留一條記錄
比如我直接select * from movie where name="功夫";有三條資料,但我只希望拿到其中任意一條就行了。可以使用group by 分組因為name是一樣的,所以分組也就是隻有一組
Sql Server 刪除重複記錄,只保留一條
delete users where ids not in (select min(ids) from users group by userid,username having(count(*)&g
刪除資料庫中重複的記錄,只保留一條
利用SQL,刪除掉重複多餘的資料,並且只保留一條資料。 其中包含資料有的是一條資料,有的是多條重複的資料,為了達到同樣的資料只有一條。 思路:先分組查詢,得到只顯示一條的id,再刪除此id以外的資料。
mysql去除重複資料,只保留一條。
之前寫過的爬蟲裡面,因為種種原因出現了一些重複的資料需要刪除掉。然後發現mysql並沒有直接的去重功能,要自己寫。 查過許多部落格之後發現可以這麼寫。 刪除ppeople 重複的資料,然後重複資料中保留id最小的那一條資料。 delete from people where
如何去掉資料庫重複記錄並且只保留一條記錄
在n條記錄裡,存在著些相同的記錄,如何能用SQL語句,刪除掉重複並保留一條呢? 方法如下: 1、查詢表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷 select * from people where peopleId in (select p
oracle刪除重複資料,只留一條資料
--worked well。可以刪除重複記錄,對於多個欄位也是一樣的原理 delete from T_USER where id in (select id from T_USER group b
Oracle刪除重複記錄只保留一條資料的幾種方法
1、查詢表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷 SELECT * FROM people WHERE peopleid IN ( SELECT peopleid FROM people GROUP BY peopleid
Oracle資料重複,只取一條
--方法一 select * from tb_supply where rowid=any(select max(rowid) from tb_supply group by phone_id) --方法二 select * from tb_supply where rowid in (selec
oracle 資料重複,只取一條
oracle中重複記錄只取其中一條 select * from table1 where rowid=any(select max(rowid) from table1 group by field1
資料庫刪除完全重複的資料,針對每條重複的資料只保留一條
出現髒資料有時是很頭疼的事情,特別是資料比較多,而且表結構比較複雜的。 最近就遇到一個奇葩問題,資料庫主鍵約束不知道被誰刪掉了,然後資料庫中就出現了很多完全一樣的資料,當然這裡也包括主鍵,因為主鍵約束都被刪除了,肯定可以儲存id完全一樣的資料。 之前遇到過有重複資料,但是不
pg資料庫查詢重複資料並可識別空資料列重複(二)--優化
在上一篇文章中,實現了查詢重複資料與刪除多餘重複資料的sql編寫:http://blog.csdn.net/u011099093/article/details/78596034; 但是經過匯入百萬資料測試,查詢語句直接卡住沒有結果,於是又花了一天時間對sql進行優化,在借鑑瞭如下地址的方法