ORACLE其中一个字段取最后一条不为空的数据要怎么取,last_value好像取的不是最后一条啊
我一个user_id只要取最后一条不为空cell。但出现了一条ID,很多CELL数据的情况。selectdistinctr.user_id,last_value(r.ce...
我一个user_id只要取最后一条不为空cell。但出现了一条ID,很多CELL数据的情况。
select distinct r.user_id,last_value(r.cell ignore nulls) over(partition by r.user_id order by r.store_time desc) as cell from register r
要怎么写SQL取到高效又唯一的cell? 展开
select distinct r.user_id,last_value(r.cell ignore nulls) over(partition by r.user_id order by r.store_time desc) as cell from register r
要怎么写SQL取到高效又唯一的cell? 展开
1个回答
展开全部
last_value 默认的统计区间是开始行到当前行,类似累加的处理方式,所以需要指定一下统计区间,例子:
select distinct r.user_id,
last_value(r.cell ignore nulls) over(partition by r.user_id order by r.store_time desc rows between unbounded preceding and unbounded following) as cell
from test1 r;
更多追问追答
追问
但取出来的不是最后一条的cell,是中间时间段的cell的。这要怎么改?
追答
你确定是中间的么, 目前这个是不为空的数据中取时间最早的, 取时间最晚就是改下order by 就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询