1、過濾重復行 select distinct 字段 from 表明
站在用戶的角度思考問題,與客戶深入溝通,找到蛟河網站設計與蛟河網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、網站建設、企業官網、英文網站、手機端網站、網站推廣、主機域名、網站空間、企業郵箱。業務覆蓋蛟河地區。
2、查找重復行 select 字段 ,count(*) from group by 字段 having count(*)1
1、查出表中重復列的數據:
select a,count(*) from table group by a having count(*)1
2、查重復次數最多的列:
select a,num from (
select a,count(*) ?num from table group by a having count(*)1
)
order by num desc
此外,還有
1、查詢一個表中所有字段都相同的記錄
比如現在有一人員表?? (表名:peosons)
若想將姓名、編號、住址這三個字段完全相同的記錄查詢出來:
select ?p1.* ?from ?persons ?p1,persons ?p2 ?where ?p1.name=p2.name ?and ?p1.id = ?p2.id ?and ?p1.address=p2.address ? ? ? ? ? ? ? ? ?group by p1.name,p1.id,p1.address ?having count(*) 1;
或者:
select ?p1.* ?from ?persons ?p1,persons ?p2 ?where ?p1.name=p2.name
and ?p1.id=p2.id ?and ?p1.address=p2.address ?and ?p1.rowidp2.rowid;
或者:(下面這條語句執行效率更高)
select ?* ?from (select ?p.*,row_number() ?over ?(partition ?by ?name,
id,address ?order ?by ?name) ?rn ?from ?persons ?p) ?where ?rn1;
2、 查詢一個表中某字段相同的記錄
語法:select ?p1.* ?from ?表名 p1,(select ?字段 ?from ?表名 group ?by ?字段 ?having ?count(*)1) ?p2 ?where ?p1.字段=p2.字段;
select ?p1.* ?from ?persons ?p1,(select ?address ?from ?persons ?group ?by ?address ?having ?count(*)1) ?p2
where ?p1.address=p2.address;
3、查詢一個表中某字段相同的記錄,其它字段不用查詢出來
select ?name,count(*) ?from ?persons group ?by ?name ?having ?count(*) 1;
用 distinct 屬性,在select之后加distinct
例:
select distinct *
from table;
select distinct name,age
from table
where 條件;
select col1,col2,count(*)
from tab_1
group by col1,col2
having count(*) 1;
查出來重復數據了
然后
delete tab_1 a where rowid in (
select max(rowid) from tab_1 b
where a.col1=b.col1
and a.col2=b.col2
);
OK,搞定!
記住了,刪除之前一定要先備份,在查詢是不是要刪除的數據,然后再刪除。
網站標題:oracle如何去重復列,oracle如何找出重復的列名
文章網址:http://vcdvsql.cn/article8/heccip.html
成都網站建設公司_創新互聯,為您提供電子商務、用戶體驗、ChatGPT、微信公眾號、云服務器、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯