Mysql 对重复数据筛选过滤

在日常开发工作中常会遇到要对数据库中的重复数据做筛选的操作需求,可以考虑使用排序函数(ROW_NUMBER())

第一种写法:row_number() over(partition by 一个或多个分组列 order by 一个或多个排序列 asc/desc) as 别名 //如果不写asc/desc的话,默认为asc

第二种写法:row_number() over(distribute by 一个或多个分组列 sort by 一个或多个排序列 asc/desc) as 别名

结合实际sql:

SELECT *

FROM (

SELECT *,

ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ... DESC) AS row_num

FROM table

) t

WHERE row_num = 1;

相关推荐
小罗和阿泽3 分钟前
MySql数据库系列 数据库基础操作
数据库·mysql
周末吃鱼12 分钟前
mysql8.0支持CURRENT_DATE如何写
数据库·sql·mysql
kaico201814 分钟前
MySQL的窗口函数
数据库·mysql
MM_MS26 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
薛定谔的猫198229 分钟前
LlamaIndex(三) LlamaHub工具集
数据库·mysql·llamahub
小画家~41 分钟前
第四十六: channel 高级使用
java·前端·数据库
晴天¥1 小时前
了解Oracle中的体系结构
数据库
DemonAvenger1 小时前
Redis慢查询分析与优化:性能瓶颈排查实战指南
数据库·redis·性能优化
Li_yizYa1 小时前
Redis-常见数据类型及应用场景
java·数据库·redis
尽兴-1 小时前
SQL 执行失败如何回滚?事务已提交还能恢复吗?——MySQL 误操作数据恢复全指南
sql·mysql·binlog·undolog·redolog