专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle技术

Oracle计算两条邻近数据ID差

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
Oracle计算两条相邻数据ID差
name    ID
张三       3
李四       6
王五      12


结果:

nam  id   差额
张三  3     3-3=0
李四  6     6- 3=3
王五  12   12- 6=6
------解决思路----------------------
分析函数lag基本用法
SQL> with t as(
  2  select '张三' A,3 B FROM DUAL UNION ALL
  3  select '李四' A,6 B FROM DUAL UNION ALL
  4  select '王五' A,12 B FROM DUAL
  5  )
  6  SELECT A,B,B-LAG(B,1,B)OVER(ORDER BY B) AS C
  7  FROM T;

A             B          C
---- ---------- ----------
张三          3          0
李四          6          3
王五         12          6

SQL>

------解决思路----------------------
over(partition by name order by name,id)
------解决思路----------------------
增加partition即可
SELECT A,B,B-LAG(B,1,B)OVER(partition by A ORDER BY B) AS C
 FROM T;

------解决思路----------------------
partition by分组加上
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: