sql输出表中重复数据

博客围绕SQL查询展开,给出一组数据,阐述了通过SQL语句取出重复数据的方法。如按特定字段分组统计数量,找出abc都相同的重复数据类别,但指出当前方法只能取出部分重复数据,若要取出所有重复记录的id,还需进一步遍历查询。

数据:

1 1 2 3
2 2 2 3
3 1 2 3
4 2 2 3
5 2 1 3
6 1 1 3
7 3 2 1

 

表格查询:

 

 SELECT * FROM `t1`;

 

可以看到,如果界定为 a、b、c 都相同即为重复数据,那么sql的目的就是取出这样的数据。

。。。

按a分组,取数量:

SELECT a,COUNT(1) FROM `t1` GROUP BY a HAVING COUNT(1)>0;

看看出 a是1的有3条记录...

 

。。。

 

SELECT id,a,b,c,COUNT(1) AS cnt from t1 GROUP BY a,b,c HAVING cnt>1;

 

可以看出 abc都相同的有两类,每类有两条,一个是 abc都为123,另一个是abc都为223

这样就取出重复的数据,但是也只能取出重复的数据是 abc为123,和 abc为223,并不能一次取出重复的所有Id,如果要取出所有重复id还要继续查询 ,也就是遍历上面的结果,每次都是根据 abc的值查询就可以查询出所有重复的记录的id了。

 

转载于:https://www.cnblogs.com/libin6505/p/10904751.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值