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