oracle last_value使用过程中的一个细节
测试结果集:
select role_id,update_date from user_info where role_id='6505007898843021313'
使用last_value求出当前role_id的最大的update_date。
select role_id,last_value(update_date)over(partition by role_id order by update_date) from user_info where role_id='6505007898843021313'
输出结果:
发现并没有像我们预期的那样,每个update_date都不一样。
查了一些相关资料,有人指出last_value统计数据的范围默认是: rows between unbounded preceding and current row(从最开始的行到当前行)。
所以需要手动指定last_value统计数据范围为:rows between unbounded preceding and unbounded following(从最开始的行到最后的行)
select role_id,last_value(update_date)over(partition by role_id order by update_date rows between unbounded preceding and unbounded following) from user_info where role_id='6505007898843021313'
返回结果:
为什么first_value没有这个问题呢,思考了一下,first_value本身就是要求从第一行开始,将所有的值都置为第一个值。所以没有这个取数据的范围的问题。
最新文章
- 浅谈SQL Transaction在请求中断后的行锁表锁
- UITableViewController和XML解析还有地图的简单结合
- asp.net读取xml方法
- mui项目实时更新
- High Availability手册(2): 架构
- 第五节:WebApi的三大过滤器
- Windows终端工具_MobaXterm
- [Android] Android 使用Greendao gradle 出现 Error:Unable to find method 'org.gradle.api.tasks.TaskInputs.file(Ljava/lang/Object;)
- 4.json解析
- 详解一个ThreadLocal 的谜题
- httpd:RSA certificate configured for SERVER does NOT include an ID which matches the server name
- shell 判断字符串长度是否不为0
- 用MVC5+EF6+WebApi 做一个小功能(一)开场挖坑,在线答题系统
- # 20155308 2016-2017-2《Java程序设计》课堂实践项目 5月17日
- 【BZOJ 2754 喵星球上的点名】
- HDU 1250 Hat's Fibonacci(大数相加)
- 洛谷:P3809 【模板】后缀排序(后缀数组模板)
- Bootstrap模态框垂直居中展示的方法
- linux页表机制
- UVA 11134 Fabled Rooks 贪心