开窗函数使用_oracle开窗函数

开窗函数使用_oracle开窗函数【Oracle】开窗函数、分组排序 row_number\partition by 详解提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录 前言一、row_number是什么?二、partition by是什么&#

【Oracle】开窗函数、分组排序 row_number\partition by 详解   提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档   文章目录 前言一、row_number是什么?二、partition by是什么?三、加上条件筛选你想要的记录   前言   我们在Oracle中,经常会出现这样的数据: 用户名密码修改时间user1abcd12022-06-09 00:00:00user1abcd22022-06-08 00:00:00user1abcd32022-06-07 00:00:00user2abcd12022-06-09 00:00:00user2abcd22022-06-08 00:00:00user2abcd32022-06-07 00:00:00user3abcd12022-06-09 00:00:00user3abcd22022-06-08 00:00:00user3abcd32022-06-07 00:00:00   那么,如果我们要取出每个用户的最新密码,就会使用到row_numberpartition by   一、row_number是什么?   row_number 就是为了赋予每一行一个序号,序号从1开始递增   效果: 用户名密码修改时间序号user1abcd12022-06-09 00:00:001user2abcd12022-06-09 00:00:002user3abcd12022-06-09 00:00:003user1abcd22022-06-08 00:00:004user2abcd22022-06-08 00:00:005user3abcd22022-06-08 00:00:006user1abcd32022-06-07 00:00:007user2abcd32022-06-07 00:00:008user3abcd32022-06-07 00:00:009   二、partition by是什么?   我们在代码中加入partition by   效果: 用户名密码修改时间序号user1abcd12022-06-09 00:00:001user1abcd22022-06-08 00:00:002user1abcd32022-06-07 00:00:003user2abcd12022-06-09 00:00:001user2abcd22022-06-08 00:00:002user2abcd32022-06-07 00:00:003user3abcd12022-06-09 00:00:001user3abcd22022-06-08 00:00:002user3abcd32022-06-07 00:00:003   三、加上条件筛选你想要的记录   通过row_number / partition by ,我们已经将这些数据,按照用户名进行分组,且在每组用户名中,以倒序对修改时间进行了排序,并将每组内的记录赋予了相应的序号。   最后,我们只需要再加入筛选条件,就可以把最新修改的密码筛选出来   同样,你可以用下面的with 方法,将添加排序的数据命名成表名

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/43538.html

(0)
上一篇 2024年 9月 6日 下午1:21
下一篇 2024年 9月 6日

相关推荐

关注微信