MySQL实现在表中找出多列相同,只有一个列不一样的数据行,找出存在重复的数据行

应为业务需要,在数据清理的时候需要对重复的数据进行清洗,所以用到了下面两种方案来找出表中存重复的数据,然后将重复的部分数据清理掉,方法如下。
推荐使用第一中方法,因为第二种方法还需要使用一个函数来将数据进行拼接,然后在做分组。

方案一
select 
customer_info_id
from  customer_breakdown 
where yearmonth='202116'
and in_use='1'
GROUP BY customer_info_id,business_type,customer_type
HAVING count(*)>1

在这里插入图片描述
方案一多一行是因为对null 做了一个分组,所以结果是162行,方案一在进行分组的时候,首先是按照customer_info_id来进行分组的,然后在第一次分组的基础上再对business_type进行分组,最后是再第二层的基础上再对customer_type进行分组。最终查出结果。如果存在重复的就会将对应的信息显示出来,然后你就可以对这批存在重复的数据进行处理。

方案二
select  
customer_info_id,
concat(customer_info_id,business_type,customer_type) as concat_stru
from customer_breakdown
where yearmonth='202116'
and in_use='1'
GROUP BY concat_stru
HAVING count(*)>1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值