Oracle子查询第一行与最后一行相运算


引言:

处理流水帐类似记录的时候,可能常遇到“在某个表值上,取首尾记录进行运算”的情况。比如:打卡记录,期末对期初增幅等。因此,笔者向大伙推荐一个Oracle的keep语法。

特别地感谢一下oracle群的驴兄和温州·名次兄的指点。

正文:

直接上样例:

  1. select max(t_.dummy) keep(dense_rank first order by t_.code desc) - max(t_.dummy) keep(dense_rank last order by t_.code desc)   
  2.   from (select 6 as code, 6666 as dummy   
  3.           from dual   
  4.         union  
  5.         select 9 as code, 9999   
  6.           from dual   
  7.         union  
  8.         select 41 as code, 414141 from dual) t_;  

相关内容