【MySQL】mysql:重复数据查询 sql

article/2025/10/5 11:05:05

目录

一、准备测试表

(1)创建表

(2)查询表

(3)删除表

二、准备测试数据

(1)插入数据

(2)查询数据

三、重复数据查询

(1)查询 numid 相同,而 testname 不同,不包括同 numid 同 testname 的数据

(2)查询 numid 相同,而 testname 不同,包括同 numid 同 testname 的数据

(3)查询 numid 相同,而 testname 不同,留去重后的同 numid 同 testname 的数据(留 id 最大的)



一、准备测试表

(1)创建表

-- 创建表:重复测试表 repeat_tab1,主键 id 自增,numid、testname 必填
CREATE TABLE IF NOT EXISTS `repeat_tab1`(`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`numid` VARCHAR(10) NOT NULL COMMENT '编号:可重复',`testname` VARCHAR(20) NOT NULL COMMENT '名称:可重复',PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='重复测试表';

 


(2)查询表

-- 查询:重复测试表 repeat_tab1
SELECT*
FROMrepeat_tab1;

 


(3)删除表

-- 删除表:重复测试表 repeat_tab1
DROP TABLE repeat_tab1;

 



二、准备测试数据

(1)插入数据

-- 插入数据:重复测试表 repeat_tab1
INSERT INTO repeat_tab1 ( numid, testname )
VALUES( 1, '吴一' ),( 1, '吴一' ),( 1, '陈二' ),( 2, '张三' ),( 2, '李四' ),( 3, '王五' );

 


(2)查询数据

-- 查询:重复测试表 repeat_tab1
SELECT*
FROMrepeat_tab1;

 



三、重复数据查询

(1)查询 numid 相同,而 testname 不同,不包括同 numid 同 testname 的数据

  

-- 查询:重复测试表 repeat_tab1,查询 numid 相同,而 testname 不同,不包括同 numid 同 testname 的数据,并根据 numid 升序排列
SELECT* 
FROMrepeat_tab1 
WHEREnumid IN ( SELECT numid FROM repeat_tab1 GROUP BY numid HAVING count( numid ) > 1 ) AND testname IN ( SELECT testname FROM repeat_tab1 GROUP BY testname HAVING count( testname ) = 1 ) 
ORDER BYnumid ASC;


(2)查询 numid 相同,而 testname 不同,包括同 numid 同 testname 的数据

-- 查询:重复测试表 repeat_tab1,查询 numid 相同,而 testname 不同,包括同 numid 同 testname 的数据,并根据 numid 升序排列
SELECT* 
FROMrepeat_tab1 
WHEREnumid IN ( SELECT numid FROM repeat_tab1 GROUP BY numid HAVING count( numid ) > 1 ) AND testname IN ( SELECT testname FROM repeat_tab1 GROUP BY testname HAVING count( testname ) >= 1 ) 
ORDER BYnumid ASC;


(3)查询 numid 相同,而 testname 不同,留去重后的同 numid 同 testname 的数据(留 id 最大的)

-- 查询:重复测试表 repeat_tab1,查询 numid 相同,而 testname 不同,留去重后的同 numid 同 testname 的数据(留 id 最大的),并根据 numid 升序排列
SELECT* 
FROMrepeat_tab1 
WHEREnumid IN ( SELECT numid FROM repeat_tab1 GROUP BY numid HAVING count( numid ) > 1 ) ANDid IN ( SELECT MAX(id) FROM repeat_tab1 GROUP BY testname HAVING count( testname ) >= 1 ) 
ORDER BYnumid ASC;


http://chatgpt.dhexx.cn/article/UcvXJwPq.shtml

相关文章

mysql查询重复数据

表全部数据 ------------------- 1 查询people_no重复的记录 select * from people where people_no in (select people_no from people group by people_no having count(people_no) > 1); ---------------------- 2 查询people_no重复的记录 ,排除最小id…

mysql 查询数据库重复数据

数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE user (id bigint(255) NOT NULL AUTO_INCREMENT,name varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT COMMENT 名称,age int(2) NOT NULL DEFAULT 0,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT5…

mysql查询表里的重复数据方法

1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES (qmf1, qmf1),(qmf2, qmf11) delete from hk_test where usernameqmf1 and passwdqmf1 MySQL里查询表里的重复数据记录: 先查看重复的原始数据: 场景一:列出username字段有重读的…

mysql过滤表中重复数据,查询表中相同数据的最新一条数据

先查询表几条demo数据,名字相同,时间不同 select id,name,create_date from sys_user 方法1:最简单,且字段全部相同,排除其他字段不同; 先对表按照时间desc排序,在查询该层使用group by 语句&#xff0…

python matplotlib 在指定的两个点之间连线

为了找到matplotlib在两个点之间连线的方法真是费了好大功夫,最后还是决定用简单的 plt.plot 来解决。如果有好多对点,则可以通过循环实现连接,还可以用 plt.arrow 画箭头,具体可参考这里 import matplotlib.pyplot as pltx [[1,…

1.11.0 pyflink使用例子

官网链接 https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/python/ python版本要求3.5及以上 安装pyflink python -m pip install apache-flink 如果安装下载太慢会time-out , 换pip源 代码 table_api方式 from pyflink.datastream import St…

Pypeline:一种实现Anylogic与Python连接的新工具

Pypeline:一种实现Anylogic与Python连接的新工具 Pypeline背景Pypeline安装方法和环境配置要求Pypeline使用方法 Pypeline背景 Pypeline是由Anylogic官方团队推出的一个功能插件,旨在实现运行中的Anylogic模型和本地安装好的Python的链接。换句话说就是…

Python的连接符

python的连接符主要有 加号()、逗号(,)、空格( ) 、反斜线(\)、join()的方式、 加号() #注意,只能连接字符串,如果一个…

在 Python 中连接列表——如何连接列表

将两个或多个字符串、列表或其他数据结构组合成单个实体的过程在编程中称为串联。 串联产生一个新对象,其中包含原始对象的所有组件,并按串联顺序排列。 字符串上下文中的连接是指将一个字符串连接到另一个字符串的末尾以创建更长的字符串。例如&#xf…

win10磁盘管理_win10合并磁盘分区教程

Win10怎么合并磁盘分区?在首次安装系统时我们需要对硬盘进行分区,但是在系统正常使用时也是可以对硬盘进行合并等操作的。许多用户在使用电脑的过程中可能都会遇到磁盘空间不够用的情况,那么对于磁盘空间不足,我们可以通过合并磁盘分区来解决…

win10磁盘管理 磁盘分区和合并

一、磁盘分区管理 如果是只需要给单个磁盘分区进行划分的话,我们可以采用电脑自带的磁盘管理工具进行操作。具体的步骤如下: 第一步:右击开始菜单图表,选择磁盘管理打开 第二步:在新弹出的窗口的右下边可以看到磁盘&…

计算机硬盘合并怎么弄,如何将分区的硬盘合并为一个磁盘?

使用Windows磁盘管理将两个硬盘都转换为动态磁盘。请参阅Microsoft的介绍。要将基本磁盘升级为动态磁盘,请右键单击“我的电脑”,然后选择“管理”以打开计算机管理控制台。在计算机管理中,单击“磁盘管理”,右键单击要升级到动态…

Windows 10 创建 删除 合并磁盘分区

Windows 10 创建 删除 合并磁盘分区 右键我的电脑 管理 磁盘管理 选择一个空间比较大的磁盘分区 右键 压缩卷 自己选择一个合适的压缩范围,进行压缩 新建分区完成 右键新建分区 选择添加卷 看新建完成的F盘 新建分区就结束啦 然后是删除分区磁盘: …

计算机如何将两个磁盘合在一起,win10怎么把电脑自带的两个磁盘合并到一起

2019-10-06阅读(447) 合并分区时,要扩展的磁盘没有“扩展卷”选项,是因为整个硬盘上没有空白卷可扩展。所以,要合并分区,应该先准备出要合并的空间大小。方法步骤进入磁盘管理:按win+x选磁盘管理,进主界面2.如要将上图1G的恢复分区合并到C盘,应:直接删除该恢复分区,得…

Win10电脑如何合并磁盘分区

电脑空间不足怎么办?很多网友可能都被这个问题困扰过,其实我们可以通过管理磁盘分区来缓解空间不足的问题,把多余的空间合并起来就行了,现在来看看该如何操作吧。 更多系统教程尽在小白系统重装官网 系统:win10专业版…

Win7分割合并磁盘

如何在Windows7系统下对硬盘进行分区?很多时候我们出于某些原因需要在硬盘上划分一块新区域,说到这里,大家可能想到了很多第三方的硬盘分区工具,其实在Win7中不需要繁琐的操作和第三方软件就可以在系统下直接进行分区。 首先点击“…

虚拟服务器的磁盘合并,磁盘管理怎么合并分区

磁盘管理怎么合并分区 内容精选 换一换 DESS磁盘扩容成功后,需要在裸金属服务器的操作系统中对扩容部分的磁盘分配分区。已登录裸金属服务器,详细操作请参见《裸金属服务器用户指南》中章节“登录Windows裸金属服务器”。已挂载磁盘至裸金属服务器&#…

电脑磁盘怎么分区以及合并?

提示:当新装硬盘后,C盘不能进行合并时,不要强行合并(需要重做系统进行分区),否则会引起崩盘 目录 前言: 如何给磁盘分区? 如何将两个及以上的分区合并 前言: 分区更方…

win7磁盘合并步骤

姐妹篇:win7磁盘合并 本文告诉给大家分析win7系统磁盘合并的详细步骤。一、右键点击我的电脑,然后选择“管理”,然后选择磁盘管理。二、选择要合并的磁盘(这次我们要把F盘合并到E盘)三、右键单击要合并的磁盘&#xff…

Orace VM VirtualBox下Linux虚拟机磁盘空间不够处理方法,扩容vdi盘+gparted合并磁盘空间(超详细图文详解)

主要分成两个角度 ①清理磁盘空间 ②外界给Linux虚拟机扩容 对于①博主搜寻了很多方法,但是因为对于Linux系统很不熟悉不知道该删些什么东西来清理,尝试半天未果,遂选择 方法②外界给Linux虚拟机扩容 本人是mac/windows双系统,…