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?
展开
 我来答
帐号已注销
推荐于2016-09-12 · TA获得超过315个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:251万
展开全部

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 就行了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式