mysql去重查询的三种方法

article/2025/9/18 20:12:51

文章目录

  • 前言
  • 一、插入测试数据
  • 二、剔除重复数据方法
    • 1.方法一:使用distinct
    • 2.方法二:使用group by
    • 3.方法三:使用开窗函数
  • 总结


前言

数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复数据,下面介绍三种剔除重复数据的方法,请针对自己的应用场景选择使用。

一、插入测试数据

下图测试数据中user_name为lilei、zhaofeng的用户是重复数据。

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、剔除重复数据方法

1.方法一:使用distinct

代码如下(示例):

select distinct user_name,email,address from t_user;

如下图,已将数据剔重,重复数据仅保留1条。
在这里插入图片描述

2.方法二:使用group by

SELECT user_name,email,address FROM t_user GROUP BY user_name, email, address;

如下图,已将数据剔重,重复数据仅保留1条。

在这里插入图片描述

3.方法三:使用开窗函数

(1)如果你的数据库是MySQL8以上版本你可以直接使用开窗函数row_number()

SELECT *
FROM(SELECT t.*, ROW_NUMBER() OVER(PARTITION BY user_nameORDER BY last_login DESC) rnFROM table AS t) AS t_user
WHERE rn = 1;

(2)如果你的数据库版本低于MySQL8,使用类row_number()方法

select user_name, email, address 
from (select b.*,@rownum := @rownum+1 ,-- 定义用户变量@rownum来记录数据的行号if(@pdept=b.user_name,@rank:=@rank+1,@rank:=1) as rank,-- 如果当前分组user_name和上一次分组user_name相同,则@rank(对每一组的数据进行编号)值加1,否则表示为新的分组,从1开始@pdept:=b.user_name -- 定义变量@pdept用来保存上一次的分组idfrom (select * from t_user) b ,(select @rownum :=0 , @pdept := null ,@rank:=0) c  -- 初始化自定义变量值order by b.user_name,b.last_login desc -- 该排序必须,否则结果会不对
) result
where rank = 1;

如下图,已将数据剔重,重复数据仅保留1条。
在这里插入图片描述

总结

word文档下载地址:mysql去重查询的三种方法


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

相关文章

易基因|RNA m7G甲基化测序(m7G-MeRIP-seq)

N7-甲基鸟苷(N7-methylguanosine,m7G)是真核生物tRNA、rRNA和mRNA 5cap中最丰富的修饰之一。作为一种重要的表观遗传修饰,m7G RNA甲基化在基因表达、加工代谢、蛋白质合成、转录稳定等方面发挥着重要的作用,参与疾病发…

GeneXus学习(二)基本对象(持续更新)

GeneXus对象很多,笔者持续更新每个对象的用法 一、Transaction GeneXus中的Transaction是用于描述对象的模型。 英文描述: Describes an object or actor of reality, defining the structure of the database, business rules, and the UI for data…

sgRNAs基因编辑

CRISPR-Cas9知识学习笔记 https://www.163.com/dy/article/FGCP58KC0532AN5N.html https://crispr.dbcls.jp CRISPR(clustered regularly interspaced short palindromic repeats,成簇的规律间隔短回文重复序列)和CRISPR-associated protein …

敏捷开发与GeneXus哲学

译者前言 在GeneXus的重要创始人和核心成员的观念里,在做一件重大事情前往往需要进行大量的思考,尤其是所要从事事业背后的本质及相关的哲学问题进行思考,然后要研究对应的方法论。在上述问题得到明确的答案后,才开始开展工作。 …

【Reactome 下载所有通路基因集】

Reactome 下载所有通路基因集 Reactome 下载所有通路基因集Reactome 介绍ReactomePA官网下载处理 Reactome 下载所有通路基因集 目前,网上有许多下载 KEGG、GO 数据库中所有富集通路的基因集方法,但是相对于 Reactome 来说却几乎没有。所以,…

易基因|一种全新的检测DNA羟甲基化的技术:ACE-Seq

大家好,这里是专注表观组学十余年,领跑做组学科研服务的易基因。今天给大家介绍一种全新的检测DNA羟甲基化的技术:APOBEC-coupled epigenetic sequencing,简称【ACE-seq】。 前言 DNA序列中胞嘧啶(C)5’ 碳…

已知基因名,如何在genbank中查询基因序列?

以人类YBX1为例,首先进入NIH官网,如下图,database选择gene,在输入框中输入自己需要找的基因名,点击搜索。 搜索后在下方search result中会显示很多结果,分别是不同物种的。点击人类的YBX1进入详情页面。 进…

基因组学(Geonomics)

什么是基因组学? 基因组学(Geonomics)是一门研究基因组(Genome)的科学。 什么是基因组? 我们每个人都是由上万亿个细胞构成的,每个细胞中都包含一套完整的生命密码,也就是DNA,而基因组就是指一个细胞中包含的所有的DNA。我们的…

系统安全: GeneXus 新身份验证方案

GAM 是 GeneXus 访问管理器,用于在您的应用程序中实现身份验证和授权,此功能为GeneXus内置功能。 介绍前我们先了解安全和身份验证领域正在发生的事情。 Auth0关于市场上可用的身份验证方案的调查显示: 28% 提供多因素身份验证,这…

Jetson Xavier NX

Jetson Xavier NX 提示:记录学习过程,倘若有抄袭请原谅 文章目录 Jetson Xavier NX前言一、安装系统二、烧镜像三、启动系统打开风扇先 四、配置VNC(此处借鉴)五、安装中文输入法六、安装cuda七、安装pytorch跟torchvision八、试试…

GeneXus学习记录——创建KB(KnowledgeBase/知识库)

GeneXus安装好之后,怎么创建一个知识库呢? 只需要点文件-新建-知识库,就可以了。 弹出的窗口填写KB名字,选择保存目录,点创建。 这里有一个注意点:数据库排序规则。 点开高级,可以看到这里SQL…

GeneXus试用报告

GeneXus试用报告 (上) GeneXus 自称为业界第一款智能开发工具,由乌拉圭的ARTech公司出品,通过描述应用软件的知识库,可以自动生成数据库模型,自动生成.net或Java两大平台的代码。 最近试用了GeneXus,并计划用GeneXus来…

GeneXus学习记录——Transaction

GeneXus中的Transaction是用于描述对象的模型。 英文描述: Describes an object or actor of reality, defining the structure of the database, business rules, and the UI for data manipulation. 翻译了一下: 描述真实的对象或参与者,定…

GeneXus学习记录

最近在网上看到了一个开发工具,叫GeneXus,很有特色的一个平台,在这里记录一下学习过程。 这个是中文官网GeneXus,这个是Global官网GeneXus。 看了一下介绍,很有特点,贴两张图感受一下 利用算法自动分析…

GeneXus学习(一)安装与介绍

转:https://blog.csdn.net/csdn_1573/article/details/120081202GeneXus安装 开始学习GeneXus,第一步就是环境的搭建。 说明文档 查看官网上学习中心,下方有一个安装及申请授权的说明文档。 按照文档中的步骤来做,除了GeneXus软件…

关于 GeneXus 起源的几点思考

译者序 不论是初次接触GeneXus,还是使用GeneXus很长时间,我们大家常常有一些疑问:在由欧美国家占绝对主导地位的软件领域,一个来自南美的小国-乌拉圭,竟然出了一个世界知名的软件公司?30多年几乎跨越软件发…

GeneXus的科技基础(GeneXus背后的理论)

GeneXus 是一个用于开发和维护软件系统的工具。 GeneXus 基于业务系统知识的自动管理。这怎么可能?通过在数学和逻辑方面定义系统开发和维护问题,以确保严格处理所考虑的问题。 GeneXus的目标是获得一个充分代表现实并且可以随着时间保持最新的模型。如何…

GeneXus学习记录——环境搭建

开始学习GeneXus,第一步就是环境的搭建。 说明文档 查看官网上学习中心,下方有一个安装及申请授权的说明文档。 按照文档中的步骤来做,除了GeneXus软件本身,在此之前还有一些相关环境的安装和配置指示了参考链接,这里…

搭建测试环境,多人测试环境

前文:在只有一台服务器并且只有一个主域名又不方便申请多个二级域名的基础上来实现一个测试环境 利用cookie来实现切换分支,访问不同的目录代码,实现代码的隔离性。 下面开始演示效果 1,准备了三个目录分别是不同开发人员的代码 …

如何配置测试环境

前言: 我们目前测试是在测试环境进行测试,研发给到测试的有前端包、后端包、sql库就完了。接下来测试自己去配置环境 文章目录 一、配置数据库1.1用记事本打开sql,修改IP地址1.2导入到测试服务器的数据库下1.3导入数据库数据 二、配置后端包…