当前位置: 首页 > news >正文

mysql去重查询的三种方法

文章目录

  • 前言
  • 一、插入测试数据
  • 二、剔除重复数据方法
    • 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去重查询的三种方法

相关文章:

mysql去重查询的三种方法

文章目录前言一、插入测试数据二、剔除重复数据方法1.方法一:使用distinct2.方法二:使用group by3.方法三:使用开窗函数总结前言 数据库生成环境中经常会遇到表中有重复的数据,或者进行关联过程中产生重复数据,下面介…...

PHP反序列化

文章目录简介POP链构造和Phar://题目[CISCN2019 华北赛区 Day1 Web1]Dropbox字符串逃逸简介 php序列化的过程就是把数据转化成一种可逆的数据结构,逆向的过程就叫做反序列化。 php将数据序列化和反序列化会用到两个函数: serialize 将对象格式化成有序的…...

什么蓝牙耳机打电话效果最好?通话效果好的无线蓝牙耳机

2023年了,TWS耳机虽说近乎人手一只了,但用户换新的需求和呼声依然热火朝天,因为我们想要听音乐、刷视频的时候都得准备,下面整理一些通话效果不错的耳机品牌。 第一款:南卡小音舱蓝牙耳机 动圈单元:13.3m…...

Tesseract centos环境安装,基于springboot图片提取文字

下载tesseract-orc https://github.com/tesseract-ocr/tesseract/tags下载leptonica wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gz解压leptonica tar -xvf leptonica-1.78.0.tar.gz 配置编译安装leptonica 进文件夹 ./configure make make install安装aut…...

Elasticsearch7.8.0版本优化——写入速度优化

目录一、 写入速度优化的概述二、如何写入速度优化2.1、 批量数据提交2.2、 优化存储设备2.31、 合理使用合并2.4、 减少 Refresh2.5、 加大 Flush2.6、 减少副本的数量一、 写入速度优化的概述 ES 的默认配置,是综合了数据可靠性、写入速度、搜索实时性等因素。实使…...

【Redis】Redis主从同步中数据同步原理

【Redis】Redis主从同步中数据同步原理 文章目录【Redis】Redis主从同步中数据同步原理1. 全量同步1.1 判断是否第一次数据同步2. 增量同步3. 优化Redis主从集群4. 总结1. 全量同步 主从第一次同步是全量同步。 数据同步包括以下三个阶段: 在从节点执行slaveof命令…...

Python基础—while循环

(1)while循环&#xff1a; 语法格式&#xff1a; while 条件&#xff1a;   执行语句1……   执行语句2…… 适用条件&#xff1a;无限循环 死循环 while True:print(条件是真的&#xff01;)代码实例&#xff1a; i 0 # 创建一个计数的变量 while i < 5: # Truepr…...

linux基础(管道符,检索,vim和vi编辑使用)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

GAN | 代码简单实现生成对抗网络(GAN)(PyTorch)

2014年GAN发表&#xff0c;直到最近大火的AI生成全部有GAN的踪迹&#xff0c;快来简单实现它&#xff01;&#xff01;&#xff01;GAN通过计算图和博弈论的创新组合&#xff0c;他们表明&#xff0c;如果有足够的建模能力&#xff0c;相互竞争的两个模型将能够通过普通的旧反向…...

华为面试题就这?00后卷王直接拿下30k华为offer......

先说一下我的情况&#xff0c;某211本计算机&#xff0c;之前在深圳那边做了大约半年多少儿编程老师&#xff0c;之后内部平调回长沙这边&#xff0c;回来之后发现有点难&#xff0c;这边可能是业绩难做&#xff0c;虚假承诺很厉害&#xff0c;要给那些家长虚假承诺去骗人家&am…...

html的常见标签使用

目录 1.vscode基础操作 2.html基础 语法 3.HTML文件的基本结构标签 4.注释标签 5.标题标签 6.段落标签:p 7.格式化标签 8.图片标签:img 绝对路径 相对路径 网络路径 alt属性 title属性 width/height属性 9.超链接标签:a 10.表格标签 11.列表标签 有序列表 无…...

STM32——毕设智能感应窗户

智能感应窗户 一、功能设计 以STM32F103芯片最小系统作为主控&#xff0c;实现自动监测、阈值设定功能和手动控制功能。 1、自动监测模式下&#xff1a; ① 采用温湿度传感器&#xff0c;实现采集当前环境的温度、湿度数值。 ② 采用光敏传感器&#xff0c;实现判断当前的环境…...

golang archive/tar库的学习

archive/tar 是 Golang 标准库中用于读取和写入 tar 归档文件的包。tar 是一种常见的文件压缩格式&#xff0c;它可以将多个文件和目录打包成单个文件&#xff0c;可以用于文件备份、传输等场景。 以下是一些学习 archive/tar 包的建议&#xff1a; 了解 tar 文件格式。在学习…...

MongoDB 详细教程,这一篇就够啦

文章目录1. 简介2. 特点3. 应用场景4. 安装&#xff08;docker&#xff09;5. 核心概念5.1 库5.2 集合5.3 文档6. 基本操作6.1 库6.1.1 增6.1.2 删6.1.3 改6.1.4 查6.2 集合6.2.1 增6.2.2 删6.2.3 改6.2.4 查6.3. 文档6.3.1 增6.3.2 删6.3.3 改6.3.4 查1. 语法2. 对比语法3. AN…...

python为什么慢

解释性 python是动态类型解释性语言&#xff0c;不管使用哪种解释器 因为“解释性语言”这个概念更多地是指代码的执行方式&#xff0c;而不是编译方式。在解释性语言中&#xff0c;代码在执行时会一行一行地解释并执行&#xff0c;而不是预先编译为机器语言。而即使使用了PyP…...

Android kotlin 组件间通讯 - LiveEventBus 及测试(更新中)

<<返回总目录 文章目录 一、LiveEventBus是什么二、测试一、LiveEventBus是什么 LiveEventBus是Android中组件间传递消息,支持AndroidX,Event:事件,Bus:总线 范围全覆盖的消息总线解决方案 进程内消息发送App内,跨进程消息发送App之间的消息发送更多特性支持 免配…...

linux服务器时间同步

Linux服务器时间同步 需求&#xff1a;两台以上服务器之间的时间同步&#xff0c;以其中一台服务器为时间源&#xff0c;其余服务器同步这台时间源服务器的时间 其中&#xff0c;时间源服务器需要有访问外网权限&#xff0c;不然时间源服务器无法同互联网同步最新的时间&#…...

扒系统CR8记录

目录 终极改造目标 过程记录 参考 为了将一套在线安装的系统&#xff0c;在不了解其架构、各模块细节的基础上&#xff0c;进行扒弄清楚&#xff0c;作以下记录。 终极改造目标 最终的目标&#xff0c;就是只通过CreMedia8_20230207.tar.gz解压 install 就把业务包安装了&…...

面试题(基础篇)

1、你是怎样理解OOP面向对象的面向对象是利于语言对现实事物进行抽象。面向对象具有以下特征&#xff1a;&#xff08;1&#xff09;继承&#xff1a;继承是从已有类得到继承信息创建新类的过程&#xff08;2&#xff09;封装&#xff1a;通常认为封装是把数据和操作数据的方法…...

如何利用ReconPal将自然语言处理技术应用于信息安全

关于ReconPal 网络侦查一直是网络安全研究以及渗透测试活动中最重要的阶段之一&#xff0c;而这一阶段看起来很容易&#xff0c;但往往需要很大的努力和很强的技术才能做好来。首先&#xff0c;我们需要使用正确的工具、正确的查询/语法以及正确的操作&#xff0c;并将所有信息…...

攻略 | 6步帮助中小微企业开拓东盟机电产品市场

如何帮助中小微外贸企业在东盟市场拓展机电产品一般贸易&#xff1f;随着全球化的发展&#xff0c;越来越多的中小微外贸企业开始涉足国际贸易。对于机电产品行业而言&#xff0c;东盟市场是一个非常重要的出口目的地。本文将为您介绍如何帮助中小微外贸企业在东盟市场拓展机电…...

Linux服务器磁盘分区、挂载、卸载及报错处理

整体操作是&#xff1a;先对磁盘进行格式化&#xff0c;格式化后挂载到需要的挂载点&#xff0c;最后添加分区启动表&#xff0c;以便下次系统启动时自动挂载。一、linux分区1、Linux来说wulun有几个分区&#xff0c;分给哪一目录使用&#xff0c;他归根结底只有一个根目录&…...

JavaScript基础语法入门

一. JS简介 JavaScript , 简称JS, JS最初只是为了进行前端页面开发, 但随这后来JS越来越火之后, JS就被赋予了更多的功能, 可以用来开发桌面程序, 手机App, 服务器端的程序等… JS是一种动态类型, 弱类型的脚本语言, 通过解释器运行, 主要在客户端和浏览器上运行, 比如Chrome…...

Linux基础命令-ln创建链接文件

文章目录 ln 命令介绍 命令格式 基本参数 参考实例 1&#xff09; 创建文件的硬链接 2&#xff09;创建文件的软链接 3&#xff09;创建链接文件时&#xff0c;相同目标文件创建备份文件 命令总结 ln 命令介绍 先看下帮助文档中的含义 NAME ln - make links …...

Day21【元宇宙的实践构想07】—— 元宇宙与人工智能

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 &#x1f91e; 作者&#xff1a;那就叫我亮亮叭 &#x1f4d5; 专栏&#xff1a;元宇宙 0.0 写在前面 “元宇宙”在2021年成为时髦的概念。元宇宙到底是什么&#xff1f;元宇…...

MySQL的InnoDB 三种行锁,SQL 语句加了哪些锁?

InnoDB 三种行锁&#xff1a; Record Lock&#xff08;记录锁&#xff09;&#xff1a;锁住某一行记录 Gap Lock&#xff08;间隙锁&#xff09;&#xff1a;锁住一段左开右开的区间 Next-key Lock&#xff08;临键锁&#xff09;&#xff1a;锁住一段左开右闭的区间 哪些语句…...

Java培训:深入解读函数式接口

函数式编程是一种编程规范或一种编程思想&#xff0c;简单可以理解问将运算或实现过程看做是函数的计算。 Java8为了实现函数式编程&#xff0c;提出了3个重要的概念&#xff1a;Lambda表达式、方法引用、函数式接口。现在很多公司都在使用lambda表达式进行代码编写&#xff0c…...

scratch潜水 电子学会图形化编程scratch等级考试一级真题和答案解析2022年12月

目录 scratch潜水 一、题目要求 1、准备工作 2、功能实现 二、案例分析...

DNS服务器部署的详细操作(图文版)

DNS服务器的部署 打开虚拟机后查看已经开放的端口&#xff0c;可以看到没有TCP53、UDP53&#xff0c;说明DNS服务端口没有打开 打开我的电脑—双击CD驱动器— 选择安装可选的Windows组件 选择网络服务—域名系统&#xff08;DNS&#xff09;— 点击下一步后会弹出如下弹…...

Compose – List / Detail: Basics实现

Compose – List / Detail: Basics实现 在androidx中有SlidingPanelLayout可以实现折叠屏的列表详情功能&#xff0c;但在Compose 中还没有官方的实现&#xff0c;那么下面我们用Compose做一些实现。 List / Detail 我们追求的基本行为是当 UI 具有项列表时。当用户点击列表…...

赣州市规划建设局网站改/网址安全检测中心

1 &#xff0c;...

作弊的网站/保定网站建设方案优化

快速幂 对大数时间复杂度的优化&#xff0c;具体操作是利用二进制操作 11的二进制是1011&#xff0c;11 21 20 21 21&#xff0c;因此&#xff0c;我们将a转化为算 a(20)*a(21)*a(23) &#xff0c;看出来快的多了吧原来算11次&#xff0c;现在算三次 & 运算还可以判断…...

网站制作要求/想要网站导航推广页

中文分词器 什么是中文分词器 对于英文&#xff0c;是安装空格、标点符号进行分词 对于中文&#xff0c;应该安装具体的词来分&#xff0c;中文分词就是将词&#xff0c;切分成一个个有意义的词。 比如&#xff1a;“我的中国人”&#xff0c;分词&#xff1a;我、的、中国…...

白云电子商务网站建设/站长之家爱站网

一、数组转字符串 需要将数组元素用某个字符连接成字符串&#xff0c;示例代码如下&#xff1a; var a, b,c; a new Array(a,b,c,d,e); b a.join(-); //a-b-c-d-e //使用-拼接数组元素 c a.join(); //abcde 二、字符串转数组 实现方法为将字符串按某个字符切割成若干个字符…...

网站推广的电子邮件推广/seo优化基础教程pdf

2019独角兽企业重金招聘Python工程师标准>>> 参考资料 Groovy groovy官网写出gradle风格的groovy代码Groovy教程Gradle 书籍《Gradle in action》Gradle官方文档Gradle中文文档Groovy&Gradle总结从移动应用到微服务&#xff0c;从小型创业公司到大企业&#xff…...

随州网络优化网站建设公司/核心关键词是什么意思

在ASML追随美国的脚步停止对中国出售14纳米光刻机之后&#xff0c;其实ASML还留了后手&#xff0c;那就是它表示仍然可以对中国出售28纳米的浸润式光刻机&#xff0c;而这款光刻机其实也可用于14纳米工艺生产&#xff0c;只不过需要多重曝光技术&#xff0c;生产成本较高。ASML…...