SELECT *,concat('update data_security_info set del_flag=1 where id = ''',id,''';') 

FROM data_security_info WHERE source = '360安全客' and del_flag = 0

and url in (SELECT url FROM data_security_info GROUP BY url HAVING COUNT(1)>1)

and id not in (SELECT MAX(id) FROM data_security_info GROUP BY url HAVING COUNT(1)>1)

url 为判重依据,保留最大id其他的数据状态改为删除状态。

concat()函数,为字符串拼接函数

从外到内分析sql 第一层四个条件界定,第一个是source渠道,第二个是未删除状态,第三个是依据url判重,第四个是除去id号最大的数据

第三个依据url判重:按照url划分组group by url 判断如果count>1则表示此url重复,抽取url

第四个除去max id 依据按照url判重,然后获取到所有重复url的最大id号,然后not in这些最大id集合。

 

最后一步,执行concat的所有sql实现数据去重

2、保留最小id的数据

SELECT *,CONCAT('delete from distinct_table where id =',id,';') FROM distinct_table
WHERE id not in (select min(id) FROM distinct_table GROUP BY s_name,kechen,fenshu)

 

 



相关文章:

  • 2022-12-23
  • 2021-07-05
  • 2021-10-26
  • 2022-01-06
  • 2021-08-20
  • 2022-03-04
  • 2021-11-18
猜你喜欢
  • 2021-12-18
  • 2022-02-07
  • 2021-11-26
  • 2022-12-23
  • 2021-12-08
  • 2022-03-03
  • 2021-07-26
相关资源
相似解决方案