当前位置:网站首页>mysql 数据去重的三种方式[实战]
mysql 数据去重的三种方式[实战]
2022-07-31 08:08:00 【暮晓引流软件】

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

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???????
三、总结。
感谢大家的关注 分享 收藏 看的人越多,表哥推送的就越猛!关注的人越多,表哥的激情更旺盛。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- sqli-labs(less-11)
- 循环结构--for循环
- Golang-based swagger super intimate and super detailed usage guide [there are many pits]
- New in Visual Studio: Low Priority Builds
- regex bypass
- 云服务器部署 Web 项目
- "C language" frog jumping steps recursion problem
- 【C#】说说 C# 9 新特性的实际运用
- 【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(下) -- 搜索历史
- 【云原生&微服务五】Ribbon负载均衡策略之随机ThreadLocalRandom
猜你喜欢

mysql安装教程【安装版】
![[MySQL exercises] Chapter 2 Basic operations of databases and data tables](/img/43/73a59a293d4708b6f9aeae990a7029.png)
[MySQL exercises] Chapter 2 Basic operations of databases and data tables
![[Interview: Concurrency 37: Multithreading: Thread Pool] Custom Thread Pool](/img/61/71131414c48bb77aa9160b61a68811.png)
[Interview: Concurrency 37: Multithreading: Thread Pool] Custom Thread Pool

SQL 入门之第一讲——MySQL 8.0.29安装教程(windows 64位)

如何在一台机器上(windows)安装两个MYSQL数据库

【小程序专栏】总结uniapp开发小程序的开发规范

如何使用mysql binlog 恢复数据

【云原生与5G】微服务加持5G核心网

使用PageHelper实现分页查询(详细)

会话技术之Coookie && Session详解
随机推荐
linux redis6.2.6配置文件
信息收集-DNS
实用生物信息学2:多组学数据整合和挖掘
关于“算力”,这篇文章值得一看
How to restore data using mysql binlog
Locust 1.0版本引入的变化
ScheduledExecutorService - 定时周期执行任务
Ceph single node deployment
mysql insert new field method
【小程序项目开发-- 京东商城】uni-app之商品列表页面 (上)
PHP中 比较 0、false、null,‘‘ “
"C language game" entry-level chess game (robot enhanced version)
mysql安装教程【安装版】
重装系统后,hosts文件配置后不生效
Vulkan与OpenGL对比——Vulkan的全新渲染架构
New in Visual Studio: Low Priority Builds
关于@Autowired
【Unity】编辑器扩展-01-拓展Project视图
MySQL安装教程
功能强大的国产Api管理工具