详解mysql数据去重的三种方式

作者:heiqi_whf 时间:2024-01-22 03:06:35 

一、背景

最近在和系统模块做数据联调,其中有一个需求是将两个角色下的相关数据对比后将最新的数据返回出去,于是就想到了去重,再次做一个总结。

二、数据去重三种方法使用

详解mysql数据去重的三种方式

1.通过MySQL DISTINCT:去重(过滤重复数据)

1.1.在使用 mysql SELECT 语句查询数据的时候返回的是所有匹配的行。

SELECT t.age FROM t_user t

详解mysql数据去重的三种方式

可以看到查询结果返回了 10 条记录,其中有一些重复的 age 值,有时出于对数据分析的要求,需要消除重复的记录值。

1.2.DISTINCT 关键字指示 MySQL 消除重复的记录值。

语法格式为:

SELECT DISTINCT <字段名> FROM <表名>;

详解mysql数据去重的三种方式

SELECT DISTINCT t.age FROM t_user t

 由运行结果可以看到,这次查询结果只返回了 5 条记录的 age 值,且没有重复的值。

ps:

其中,&ldquo;字段名&rdquo;为需要消除重复记录的字段名称,多个字段时用逗号隔开。

使用 DISTINCT 关键字时需要注意以下几点:

DISTINCT 关键字只能在 SELECT 语句中使用。

在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。

如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。

2.group by

详解mysql数据去重的三种方式

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

标签:mysql,数据去重
0
投稿

猜你喜欢

  • selenium+headless chrome爬虫的实现示例

    2022-01-31 19:29:50
  • ASP如何获取通过代理的真实IP地址

    2007-09-20 13:11:00
  • vue awesome swiper异步加载数据出现的bug问题

    2024-05-03 15:10:58
  • Python 切片为什么不会索引越界?

    2022-02-22 19:39:47
  • Django视图层与模板层实例详解

    2022-01-24 10:20:09
  • Java采用setAsciiStream方法检索数据库指定内容实例解析

    2024-01-28 18:40:33
  • JavaScript程序执行顺序问题总结

    2010-01-29 13:06:00
  • 107条javascript(js)常用小技巧

    2007-10-30 12:40:00
  • python 统计列表中不同元素的数量方法

    2023-10-16 05:22:33
  • python检测远程服务器tcp端口的方法

    2021-02-18 22:49:44
  • Mysql批量插入数据时该如何解决重复问题详解

    2024-01-20 16:18:41
  • pythotn条件分支与循环详解(3)

    2023-11-14 01:35:06
  • Oracle中大批量删除数据的方法

    2010-07-21 13:05:00
  • JavaScript回调函数callback用法解析

    2024-04-22 22:12:48
  • css样式表实现首写字母大写

    2007-10-08 12:11:00
  • 详解vue中async-await的使用误区

    2024-05-09 09:21:06
  • 404页面设计一样可以闪光

    2007-08-19 15:09:00
  • python中的协程深入理解

    2021-05-27 21:47:36
  • python如何利用matplotlib绘制并列双柱状图并标注数值

    2022-08-06 22:00:33
  • SQL截取字符串函数分享

    2011-11-03 17:07:37
  • asp之家 网络编程 m.aspxhome.com