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

引言:

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

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

正文:

  直接上样例:
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)
  from (select 6 as code, 6666 as dummy
          from dual
        union
        select 9 as code, 9999
          from dual
        union
        select 41 as code, 414141 from dual) t_;


  笔者写前百度过,因为网上资料较多(参考, oracle keep用法),不做重复性解释。


猜你喜欢

转载自zhaoningbo.iteye.com/blog/1558140