资讯专栏INFORMATION COLUMN

数据库根据指定字段去重

Clect / 3408人阅读

摘要:需求对一张用户表根据字段去除重复数据思路用方法可以查询出去重后的数据,将这些数据存储到一张临时表中,然后将临时表的数据存储到指定的表中误区及解决方案方法只能获取部分字段去重指定字段,不能一次获取到完整的数据,但是可以通过函数获取结果集中的,

需求:对一张用户表根据name/email/card_num字段去除重复数据;

思路:用group by方法可以查询出"去重"后的数据,将这些数据存储到一张临时表中,然后将临时表的数据存储到指定的表中;

误区及解决方案:group by方法只能获取部分字段(去重指定字段),不能一次获取到完整的数据,但是可以通过max函数获取group by结果集中的id,再根据id集合查询出全部的记录。

测试思路

查询去重后的数据

SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num;

从去重后的数据中获取id集合

SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T;

根据去重后的数据中获取id集合,从源数据中获得记录列表

SELECT * from users where id in (SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T);

实际方法

根据去重后的数据中获取id集合,从源数据中获得记录列表,将这些列表数据存入一个临时表中

create TEMP TABLE tmp_data as SELECT * from users where id in (SELECT ID from (SELECT max(id) as id,name,email,card_num FROM users GROUP BY name,email,card_num) as T);

将临时表中的数据存入指定的数据表中,完毕

insert into users_copy1 select * from tmp_data;

检测

检测结果是不是和第一步查询去重后的数据总数相同

select count(*) from users_copy1;

测试结果:1.4w条数据中有2300条数据重复,实际运行结果为0.07s,基本满足现在的需求。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32410.html

相关文章

  • 据库根据指定字段去重

    摘要:需求对一张用户表根据字段去除重复数据思路用方法可以查询出去重后的数据,将这些数据存储到一张临时表中,然后将临时表的数据存储到指定的表中误区及解决方案方法只能获取部分字段去重指定字段,不能一次获取到完整的数据,但是可以通过函数获取结果集中的, 需求:对一张用户表根据name/email/card_num字段去除重复数据; 思路:用group by方法可以查询出去重后的数据,将这些数据存储...

    hosition 评论0 收藏0
  • 自研实时计算模块介绍及运维数据应用场景实施

    自研实时计算模块介绍及运维数据应用场景实施 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    不知名网友 评论0 收藏2564
  • 前端常用的工具类函数, 持续更新中

    摘要:在开发项目的时候,有一些场景用到次数频繁的函数,就封装在了自己的工具类里,在这里和大家分享一下通过获取到数据列表中对应显示的字段经常做平台类的项目,容易碰到这样的场景,增删改查页面,添加完之后,表格要显示某个类型,但是接口返回数据是类型,就 在开发项目的时候,有一些场景用到次数频繁的函数,就封装在了自己的工具类里,在这里和大家分享一下 1. 通过value获取到数据列表中对应显示的字段...

    wyk1184 评论0 收藏0
  • 前端常用的工具类函数, 持续更新中

    摘要:在开发项目的时候,有一些场景用到次数频繁的函数,就封装在了自己的工具类里,在这里和大家分享一下通过获取到数据列表中对应显示的字段经常做平台类的项目,容易碰到这样的场景,增删改查页面,添加完之后,表格要显示某个类型,但是接口返回数据是类型,就 在开发项目的时候,有一些场景用到次数频繁的函数,就封装在了自己的工具类里,在这里和大家分享一下 1. 通过value获取到数据列表中对应显示的字段...

    Sourcelink 评论0 收藏0
  • Oracle ROW_NUMBER() OVER()函数的实际场景使用

    摘要:前言最近开发的系统中有个在线咨询功能。学生在前台提交咨询信息,教师可以登录后台回复咨询。将上面作为子查询,使用内连接并用字段连接。在中还可以使用来返回唯一值。函数,语法如下函数用于给记录进行标号,函数的作用是将表中的记录进行分组和排序。 前言 最近开发的系统中有个在线咨询功能。学生在前台提交咨询信息,教师可以登录后台回复咨询。该功能设计是直接使用一张表,使用是否开始标识该条记录是否是咨...

    jsyzchen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<