虚拟主机域名注册-常见问题数据库问题 → 数据库问题

SQL中去除重复数据的几种方法

  第一种:distinct

  根据单个字段去重,能精确去重;

  作用在多个字段时,只有当这几个字段的完全相同时,才能去重;

  关键字distinct只能放在SQL语句中的第一个,才会起作用

  上图举例说明:图中student_name 为 test的同学有两位,不同的是班级

  首先,单个字段 -》用distinct对student_name 进行筛选,单个字段查询的话,可以看到已经将一个重复的test学生记录去掉了

  应用在多个字段时,可以看到此时两个同名的test,都被查出来;应用在多个字段时,只有当多个字段重复才会去重

  一般用来返回不重复的记录条数,返回不重复的条数(去掉test重复的,就剩下6条)

  第二种:group by + count + min 去掉重复数据

  没有加group by之前,有两条班级名称一样的数据

  加上group by 后,会将重复的数据去掉了

  count + group +min:去掉重复数据

  首先根据查出重复的数据

  然后再加上id不在查询结果里面的,去掉重复数据

  SELECT * from tb_class where classname in (SELECT classname from tb_class GROUP BY classname HAVING COUNT(classname)>1)

  and id NOT in (SELECT min(id) from tb_class GROUP BY classname HAVING count(classname)>1)




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:Java 什么原因会发生死锁?如何避免?
下一篇:一文了解jni技术
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部