oracle – 如何在条件下找到两行之间的差异
发布时间:2021-03-05 22:47:24 所属栏目:百科 来源:网络整理
导读:name point----------steve 207Mary 203steve 205steve 200steve 139Mary 300 我想得到条件eqn = [(第1行) – 行]的行之间的差异,其中name = steve,所以我理想地希望它是, steve 2 //207 - 0steve 5 //205 - 207steve 61 //200 - 205steve 139 //139 - 200
name point ---------- steve 207 Mary 203 steve 205 steve 200 steve 139 Mary 300 我想得到条件eqn = [(第1行) – 行]的行之间的差异,其中name = steve,所以我理想地希望它是, steve 2 //207 - 0 steve 5 //205 - 207 steve 61 //200 - 205 steve 139 //139 - 200 有代码可以找到连续行之间的差异.但是添加条件时它不起作用. 解决方法编辑到期OP评论我已更改查询以完全符合您的请求.LAG可以帮助您: select name,coalesce( point - lag( point,1,Null ) over (order by point),point) as diff,point || '-' || LEAD( point,0 ) over (order by point) as prev_point from t where name = 'steve' order by point desc Results: | NAME | DIFF | PREV_POINT | ----------------------------- | steve | 2 | 207-0 | | steve | 5 | 205-207 | | steve | 61 | 200-205 | | steve | 139 | 139-200 | (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |