【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