解决表中重复行的问题题

现在有一个表,里面有若干重复行,现在我们对其做如下处理:

1.显示重复记录

2.显示非重复记录

3.显示所有记录,如有重复只显示一次

4.删除重复的记录,每个记录只保留一个

 SQL> select * from tt;

         X          Y
---------- ----------
         5          6
         5          6
         1          2
         1          3
         1          4
         1          2
         1          3
         1          3
         3          4
         3          5
         3          5

         X          Y
---------- ----------
         5          6

如上表

 

 

1.显示重复的记录

     方法一: select * from tt having count(*)>1 group by (x,y);

 

     方法二: select distinct * from tt where rowid not in (select max(rowid) from tt group by (x,y));

 

2.显示非重复的记录

     方法一:select * from tt having count(*)=1 group by (x,y);

 

     方法二:select * from tt minus(select * from tt having count(*)>1 group by (x,y));

 

3.显示所有记录,如有重复只显示一次

     方法一:select distinct * from tt;

 

     方法二:select * from tt where rowid in (select max(rowid) from tt group by (x,y));

 

4.删除重复记录,每个记录保留一次

     方法一:delete from tt where rowid not in
                            (select max(rowid) from tt group by (x,y));

 


为啥找不到SQL的代码输入器,难看死了,就先这把,希望大家指点指点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值