详解mysql数据去重的三种方式
作者:heiqi_whf 发布时间:2024-01-22 03:06:35
标签:mysql,数据去重
一、背景
最近在和系统模块做数据联调,其中有一个需求是将两个角色下的相关数据对比后将最新的数据返回出去,于是就想到了去重,再次做一个总结。
二、数据去重三种方法使用
1.通过MySQL DISTINCT:去重(过滤重复数据)
1.1.在使用 mysql SELECT 语句查询数据的时候返回的是所有匹配的行。
SELECT t.age FROM t_user t
可以看到查询结果返回了 10 条记录,其中有一些重复的 age 值,有时出于对数据分析的要求,需要消除重复的记录值。
1.2.DISTINCT 关键字指示 MySQL 消除重复的记录值。
语法格式为:
SELECT DISTINCT <字段名> FROM <表名>;
SELECT DISTINCT t.age FROM t_user t
由运行结果可以看到,这次查询结果只返回了 5 条记录的 age 值,且没有重复的值。
ps:
其中,“字段名”为需要消除重复记录的字段名称,多个字段时用逗号隔开。
使用 DISTINCT 关键字时需要注意以下几点:
DISTINCT 关键字只能在 SELECT 语句中使用。
在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。
如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。
2.group by
SELECT t.age FROM t_user t GROUP BY t.age;
3.row_number窗口函数
语法格式为:
row_number() over (partition by <用于分组的字段名> order by <用于组内排序的字段名>)
项目使用的去重:
select * from (select t.*,row_number() over(partition by t.children_id order by t.update_time DESC) rn
from mdm_data_authority_view_info t where t.DATA_CLASS_ID = '分类id' AND t.DATA_ROLE_ID
IN ( '角色id', '角色id' ))
where rn = 1;
三、总结
来源:https://blog.csdn.net/weixin_42188778/article/details/125120338


猜你喜欢
- 1, 创建pytorch 的Tensor张量:torch.rand((3,224,224)) #创建随机值的三维张量,大小为(3,224,2
- 在Python编程中,导入文本文件是常见的操作之一。Python提供了丰富的标准库,使得文件操作变得十分简单。那么,如何在Python中导入
- AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理
- 一、半同步简介MASTER节点在执行完客户端提交的事务后不是立刻返回结果给客户端,而是等待至少一个SLAVE节点接收并写到relay log
- 前言当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们。开发组件py
- 今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的。 之前在w3s网站上看到ORDER BY的用法,以
- 简介在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份。而Linux的crontab指令则可以帮助我们实现对数据库定时进
- 使用df=df.values,可以把Pandas中的dataframe转成numpy中的array来源:https://blog.csdn.
- 因为使用python+selenium有时候需要获取当前文件的上一级目录,找了一段时间找到了,在此记录下来;os.path.dirname(
- 作用域规则命名空间是从名称到对象的映射,Python中主要是通过字典实现的,主要有以下几个命名空间:内置命名空间,包含一些内置函数和内置异常
- --分页存储过程示例 Alter PROCEDURE [dbo].[JH_PageDemo] @pageSize int = 9000000
- 代码如下: var params = new Enumerator(Request.QueryString); while (!params
- 一、word转pdf先安装win32库:pip install pywin32from win32com.client import gen
- 应用场景:1、授权(Authorization)装饰器能有助于检查某个人是否被授权去使用一个web应用的端点(endpoint)。它们被大量
- 这篇文章主要介绍了Python文件操作函数用法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、日志级别1. 级别定义logging模块提供了5种日志级别,分别为:CRITICAL>ERROR>WARNING>IN
- 品牌是我们一直挂在嘴边的词语,视觉设计师们经常说到,公司的品牌该如何如何去设计?这个违背了我们的公司品牌!等等。之前我有谈过关于 品牌灵魂的
- 一.链接打开方式1、新窗口打开优点:用户点链接的时候,当前浏览的内容不会被替换,不需要通过前进、后退去看自己看过的内容;缺点:访问一会,就会
- python3与python2的还是有诸多的不同,比如说在2中:print "Hello,World!" r
- “没 Javascript 就会死”的页面通常都会加入 noscript 标签用于提示用户开启脚本支持。 然而在 IE8 下,如果在 nos