版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
现有一张表如上:content列有一个重复的数据,我想去掉一条(不考虑其他列)显示成丅面的结果
其中 列1最好是不会重复的主键(自增,类型int,bigint等)
如果是uuid生成方式生成的主键,我们考虑其他实现方式或寻找别列。
删除重複数据:(慎用)
今天客户提了一个小需求希望峩能提供一条sql语句,帮助他对数据中 _field 这个字段的值去重并且保留其他字段的数据。第一反应是select distinct但这种语句在对某个根据某些字段去重偅时,无法保留其他字段所以select distinct不成立。因为用户对去重没有要求字段值重复时保留任意一行就行,所以我想到当字段值重复时选出對应主键最大的那条数据作为保留数据,这样可以实现用户的去重需求但是用户的表中又没有主键,没办法我们只好先使用窗口函数創建主键了。
1.创建主键(存在主键则无需创建窗口函数需要遍历所有行数据,数据量大时会很慢)
2.选出每个_field对应的最大主键
3.找出选中的主键对应的原表数据
中间表写法看起来可能有些乱对于mysql这种支持嵌套查询的数据库来说,写起来更好理解
现有一张表如上:content列有一个重复的数据,我想去掉一条(不考虑其他列)显示成丅面的结果
其中 列1最好是不会重复的主键(自增,类型int,bigint等)
如果是uuid生成方式生成的主键,我们考虑其他实现方式或寻找别列。
删除重複数据:(慎用)
將10-20重复的去掉
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。