https://www.cnblogs.com/yuanlinjie/p/12879802.html
解决思路:用Oracle的row_number() over函数来解决该问题。
解决过程:
1.查看表中的重复记录
SELECT * FROM find_new ;

2.标记重复的记录
select
t.id,
t.name,
t.grade,
t.class,
t.time,
t.sex,
row_number() OVER(PARTITION BY t.name ORDER BY t.time desc) as row_flg
from find_new t

3.过滤重复数据,取得最新的记录
SELECT temp.id,temp.name,temp.grade,temp.class,temp.time,temp.sex
from ( SELECT t.*,row_number() OVER(PARTITION BY t.name ORDER BY t.time desc) as row_flg FROM find_new t ) temp
where temp.row_flg = '1';

4.根据Id排序
SELECT temp.id,temp.name,temp.grade,temp.class,temp.time,temp.sex
from ( SELECT t.*,row_number() OVER(PARTITION BY t.name ORDER BY t.time desc) as row_flg FROM find_new t ) temp
where temp.row_flg = '1' ORDER BY temp.id;

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).
与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.
row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).
rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).
dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .
lag(arg1,arg2,arg3):
arg1是从其他行返回的表达式
arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。
arg3是在arg2表示的数目超出了分组的范围时返回的值。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
2019-03-17 01c++学习
2019-03-17 10添加联系人小项目