广告
返回顶部
首页 > 资讯 > 精选 >SQL怎么删除重复数据
  • 281
分享到

SQL怎么删除重复数据

2023-07-02 15:07:04 281人浏览 独家记忆
摘要

这篇文章主要介绍“sql怎么删除重复数据”,在日常操作中,相信很多人在SQL怎么删除重复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL怎么删除重复数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧

这篇文章主要介绍“sql怎么删除重复数据”,在日常操作中,相信很多人在SQL怎么删除重复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL怎么删除重复数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    1 SQL去重

    SQL中去除完全相同数据可以用distinct关键字,任意字段去重可以用group by,以下面的数据表为例。

    2 distinct

    存在两条完全相同的纪录,用关键字distinct就可以去掉

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

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

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

    SQL怎么删除重复数据

    SQL怎么删除重复数据

    SQL怎么删除重复数据

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

    SQL怎么删除重复数据

    3 group by

    1. 查询根据名字去重后数据(名字相同取id值大的)

    SELECT * FROM stu WHERE id IN (SELECT MAX(id) FROM stu GROUP BY `name`)

    SQL怎么删除重复数据

    2. 删除名字相同数据(名字相同保留id值大的)

    group by + count + max去掉重复数据

    1)SELECT * FROM stu

    SQL怎么删除重复数据

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

    SQL怎么删除重复数据

    3) 条件(名字)是数量大于1的重复数据

    SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(`name`) > 1#条件是数量大于1的重复数据SELECT * FROM stu WHERE `name` IN(SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(`name`)>1 )

    SQL怎么删除重复数据

    4)查看某字段重复数据的id

    SELECT id, COUNT(*) FROM stu GROUP BY NAME DESC HAVING(COUNT(*) > 0)

    SQL怎么删除重复数据

    5)查询所有重复数据

    SELECT * FROM stu WHERE NAME IN (SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(`name`) > 1)

    SQL怎么删除重复数据

    5) 去重

    可以使用distinct去重(返回不重复的用户名)

    删除多余的重复记录(name),只保留id最大的记录。

    DELETE FROM stu WHERE id NOT IN ( SELECT a.id FROM ( SELECT MAX( id ) AS id FROM stu GROUP BY `name` )a )

    或者

     DELETE FROM stu WHERE `name` IN (SELECT `name` FROM (SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(`name`)>1) e) AND id NOT IN (SELECT id FROM (SELECT MAX(id) AS id FROM stu GROUP BY `name` HAVING COUNT(`name`)>1) t) #查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值

    错误删除

    DELETE FROM stu WHERE name IN (SELECT name FROM stu GROUP BY name HAVING COUNT(name)>1)
    AND id NOT IN (SELECT MAX(id) FROM stu GROUP BY stu HAVING COUNT(name)>1)

    原因是:不能将直接查处来的数据当做删除数据的条件,我们应该先把查出来的数据新建一个临时表,然后再把临时表作为条件进行删除功能

    4 总结

    去重后名字记录

    SELECT `name` FROM stu GROUP BY NAME HAVING(COUNT(*) > 0)

    2)

    所有重复名字的记录

    SELECT `name` FROM stu GROUP BY NAME HAVING COUNT(*) > 1

    3)把所有重复的记录都删了

    DELETE FROM stu WHERE name IN
    (SELECT name FROM stu GROUP BY name HAVING COUNT(*)>1)

    SQL怎么删除重复数据

    无法在删除时同时查询这张表,这个问题只在MySQL中出现,oracle没有。怎么解决?我们只需要在查出结果以后加一张中间表。让执行器认为我们要查的数据不是来自正在删的这张表就可以了。

    DELETE FROM stu WHERE `name` IN     (SELECT a.name FROM         (SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(*)>1) a)

    所有重复数据都删除, 就剩王五一条数据了

    SQL怎么删除重复数据

    4) 现在删除所有重复数据数据做完了,考虑怎么保留重复数据中id最小的。只需要在删除时让删除该条的记录id不在重复数据id最小的当中就可以了。

    DELETE FROM stu WHERE `name` IN     (SELECT a.name FROM         (SELECT `name` FROM stu GROUP BY `name` HAVING COUNT(*)>1) a)     AND id NOT IN     (SELECT b.id FROM         (SELECT MIN(id) id FROM stu             GROUP BY `name` HAVING COUNT(*)>1) b);

    SQL怎么删除重复数据

    还有简单办法 算出去重后所有数据(保留最小ID),然后删除id不在该数组里的

     DELETE FROM stu WHERE id NOT IN (SELECT t.id FROM (SELECT MIN(id) AS id FROM stu GROUP BY `name`)t)

    到此,关于“SQL怎么删除重复数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: SQL怎么删除重复数据

    本文链接: https://www.lsjlt.com/news/342737.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SQL怎么删除重复数据
      这篇文章主要介绍“SQL怎么删除重复数据”,在日常操作中,相信很多人在SQL怎么删除重复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL怎么删除重复数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
      99+
      2023-07-02
    • SQL Server中怎么删除重复数据
      这篇文章将为大家详细讲解有关SQL Server中怎么删除重复数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方法一复制代码 代码如下: declare...
      99+
      2022-10-18
    • SQL删除重复数据的方法
      这篇文章将为大家详细讲解有关SQL删除重复数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在sql中,可以使用select语句删除重复数据,语法为:“s...
      99+
      2022-10-18
    • mongodb怎么删除重复数据
      在MongoDB中删除重复数据可以使用聚合管道和$group操作符来实现。以下是一种常见的方法:1. 使用聚合管道和$group操作...
      99+
      2023-10-20
      mongodb
    • mysql怎么删除重复数据
      这篇文章主要讲解了“mysql怎么删除重复数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql怎么删除重复数据”吧!sku对应的重量表,应该一个sk...
      99+
      2022-10-19
    • sql如何删除完全重复数据
      要删除完全重复的数据,可以使用以下SQL语句:```sqlDELETE FROM table_nameWHERE (...
      99+
      2023-08-08
      sql
    • Sql Server中怎么删除数据表中重复记录
      这篇文章将为大家详细讲解有关Sql Server中怎么删除数据表中重复记录,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、生成一张临时表new_users...
      99+
      2022-10-18
    • sql数据库删除数据怎么恢复
      小编给大家分享一下sql数据库删除数据怎么恢复,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前...
      99+
      2022-10-18
    • SQL Server中怎么删除重复行
      今天就跟大家聊聊有关SQL Server中怎么删除重复行,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.如果有ID字段,就是具有唯一性的字段复制代...
      99+
      2022-10-18
    • SQL删除重复数据的实例教程
      目录1 SQL去重2 distinct3 group by1. 查询根据名字去重后数据(名字相同取id值大的)2. 删除名字相同数据(名字相同保留id值大的)4 总结1 SQL去重 ...
      99+
      2022-11-13
    • SQLServer中怎么删除重复数据
      这篇文章将为大家详细讲解有关SQLServer中怎么删除重复数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方法一declare @max integer...
      99+
      2022-10-18
    • SQL中怎么删除ACCESS重复记录
      这期内容当中小编将会给大家带来有关SQL中怎么删除ACCESS重复记录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 有两个意义上的重复记录,一是完全重复的记录...
      99+
      2022-10-18
    • 备份数据重复的数据库sql删除操作
      update   eepm_engineer_pro_implement set state=2 where id in ( select   p1.id FROM eepm_engineer_pro_implement...
      99+
      2017-09-17
      备份数据重复的数据库sql删除操作
    • SQL Server如何删除表中的重复数据
      本篇内容介绍了“SQL Server如何删除表中的重复数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!添加示例数据create&...
      99+
      2023-06-30
    • pandas删除重复数据
       1、pandas中重复索引问题 df = df[~df.index.duplicated()] 2、pandas删除重复数据行 # 首先导入常用的两个包import pandas as pdimport numpy as np# 1.删除...
      99+
      2023-09-01
      pandas python 数据分析
    • oacle 删除重复数据
      --测试数据create table test as select * from dba_objects;insert into test select * from test;--查看...
      99+
      2022-10-18
    • mysql删除重复数据
      mysql删除重复数据分为两种情况: 一、以一个字段来唯一确定一条记录,可以用以下SQL来删除: delete glt_entity_tmp from glt_entity_tmp,(selec&...
      99+
      2022-10-18
    • oracle怎么删除重复数据语句
      在Oracle中,可以使用DELETE语句来删除重复数据。以下是一个示例:```sqlDELETE FROM your_ta...
      99+
      2023-08-11
      oracle
    • 数据库删除重复数据
      当数据库数据量大的时候,删除重复元素是很讨厌的,有时候怎么也写不对,闲下来整理一下删除 重复数据的sql,数据表是之前看mysql教学视频的素材,但是找不到哪...
      99+
      2022-10-18
    • SQL怎么删除重复的电子邮箱
      今天小编给大家分享一下SQL怎么删除重复的电子邮箱的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。SQL题目概述题目:编写一个...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作