zoukankan      html  css  js  c++  java
  • oracle分析函数

    在工作中使用到的分析函数主要有两种,一个是sum () over (partition by ……order by ……)另外一个就是 lead(lag)over (|partition by|order by )

    sum不用多说,主要就是按照partition by 内的字段,分别合计,返回若干行,而不是像group by那样只返回一行。

    lead(lag)是按照order by 的排序方式,在partition by 内的范围内,向下(上)查询N条记录。

    一个简单的例子:

    with tmp as(  

     
    select '1' id ,'aa' name from dual union all  
    select '2' id ,'bb' name from dual  
    )  
    select a.*,  
           lag(name,1) over (order by id desc) lag  
    from tmp a 
    原始记录查询这样的,执行该分析函数,则为这样的:
    按照id 倒叙的方式,查询出改行记录的上一行数据,因为id=2的时候,上一行为空,所以结果为空。而id=1的上一条name记录结果为bb,因此,该行记录的lag为bb
  • 相关阅读:
    浅谈线段树
    浅谈KMP
    20200729线上模拟题解
    20200727线上模拟题解
    声明
    tarjan--割点,缩点
    20201029模拟
    高精模板
    二分图--二分图的几种模型
    树的直径与树的重心
  • 原文地址:https://www.cnblogs.com/mht91919/p/5794528.html
Copyright © 2011-2022 走看看