记录一次惊心动魄的sql去重
2024-10-19 08:48:49
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)
最新文章
- 实战Hybird app:内存溢出与优化
- CSS去除firefox点击链接时的虚线边框
- window server开发
- Django: TemplateDoesNotExist at /admin/
- Umbraco部署到IIS中权限问题(back office没有权限新建template)
- hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10
- Python Mixin混入的使用方法
- 个人.net学习规划路线
- npm 安装与常用命令
- CodeForces 510B	 DFS水题
- Log4j appender输出类型配置
- 计算rem
- Dapper入门教程(二)——执行非查询语句
- servlet线程同步问题-代码实现同步(转)
- 54. Spiral Matrix(中等)
- Makefile 宏定义 -D
- InnoDB存储引擎的 B+ 树索引
- JAVA版开源微信管家—JeeWx捷微3.1小程序版本发布,支持微信公众号,微信企业号,支付窗
- Security Software Engineer
- C语言dos程序源代码分享(进制转换器)