zoukankan      html  css  js  c++  java
  • Oracle 分析函数之 lag和lead

    Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。

    这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。

    /*语法*/  

    lag(exp_str,offset,defval) over()  

    Lead(exp_str,offset,defval) over() 

    --exp_str要取的列 

    --offset取偏移后的第几行数据 

    --defval:没有符合条件的默认值

     

    举例说明:

    /*基础数据*/
    select t.* from test1 t;

     

    /*用lag,lead分析以后的数据*/
    select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,  
    lead(t.name,1,0) over(order by id desc) min_v
    from TEST1 t;

     

     

    /*满足查询结果的数据*/
    select i.* from(select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,  
    lead(t.name,1,0) over(order by id desc) min_v  
    from TEST1 t) i where i.name='3aa';

  • 相关阅读:
    算法导论————KMP
    KMP算法
    几个很好的OJ网站
    查找(二分、hash、桶)
    动态规划
    贪心(未完待续)
    搜索的题
    codeVS 1031 质数环
    《将博客搬至CSDN》
    HDU1717小数化分数2
  • 原文地址:https://www.cnblogs.com/xingkai/p/5731449.html
Copyright © 2011-2022 走看看