over 分析函数之 lag() lead()

  1. /*语法*/
  2. lag(exp_str,offset,defval) over()  取前
  3. Lead(exp_str,offset,defval) over()  取后
  4. --exp_str要取的列
  5. --offset取偏移后的第几行数据
  6. --defval:没有符合条件的默认值

eg1:

with tmp as(
select ‘1‘ id ,‘aa‘ name from dual union all
select ‘2‘ id ,‘bb‘ name from dual
union all
select ‘3‘ id ,‘cc‘ name from dual
)
select a.*,
lag(name,1) over (order by id asc) lag
from tmp a

运行结果是:

eg2

with tmp as(
select ‘1‘ id ,‘aa‘ name from dual union all
select ‘2‘ id ,‘bb‘ name from dual
union all
select ‘3‘ id ,‘cc‘ name from dual
)
select a.*,
lead(name,1) over (order by id asc) lag
from tmp a

时间: 2024-10-20 06:14:28

over 分析函数之 lag() lead()的相关文章

Oracle lag()/lead() over()分析函数

with tmp as(select '1' id ,'aa' name ,'22' age from dual union allselect '2' id ,'bb' name ,'20' age from dual union allselect '3' id ,'CC' name ,'21' age from dual)select a.*, lead(age,1) over (order by id desc) lag, a.age - lead(age,1) over (order

oracle 分析函数lag lead

LAG is an analytic function. It provides access to more than one row of a table at the same time without a self join. Given a series of rows returned from a query and a position of the cursor, LAG provides access to a row at a given physical offset p

Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE

1.LAG功能是什么? 2.LEAD与LAG功能有什么相似的地方那个? 3.FIRST_VALUE与LAST_VALUE分别完成什么功能? 继续学习这四个分析函数. 注意: 这几个函数不支持WINDOW子句. Hive版本为 apache-hive-0.13.1 数据准备: 水电费 cookie1,2015-04-10 10:00:02,url2 cookie1,2015-04-10 10:00:00,url1 cookie1,2015-04-10 10:03:04,1url3 cookie1,

Hive函数:LAG,LEAD,FIRST_VALUE,LAST_VALUE

参考自大数据田地:http://lxw1234.com/archives/2015/04/190.htm 测试数据准备: create external table test_data ( cookieid string, createtime string, --页面访问时间 url string --被访问页面 ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile location '/user/jc_rc_ft

hive基础2

RDBMS OLTP. relation database management system,关系型数据库管理系统. 支持事务(acid) 延迟低 安全行 V variaty : 多样性. hive mr,sql 开发效率高. 数据仓库. 数据库: //OLTP OLTP //online transaction process, OLAP //online analyze process,在线分析处理 , 很多分析函数 //rank | lag | lead | .. | cube | ro

oracle lag与lead分析函数简介

lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数我们可以取到当前行列的偏移N行列的值 lag可以看着是正的向上的偏移 lead可以认为负的向下的偏移 具体我们来看几个例子: 我们先看下scott的emp表的两列数据: select deptno, sal from scott.emp order by deptno DEPTNO SAL 10 2450.00 10 5000.00 10 1300.00 20 2975.00 20 3000.00 20 1100.00 20 800

oracle分析函数(2)

常用分析函数: 1. first,last --假设a := min(奖金) keep(dense_rank first order by 工资) --假设工资最少为1000,a为在工资等于1000的员工取最小的奖金 --假设b := min(奖金) keep(dense_rank last order by 工资) --假设工资最多为9999,b为在工资等于9999的员工取最小的奖金 --作为聚合函数 select e.department_id, min(e.hire_date) keep(

分析函数

在OLAP这类系统或者DW这类数据库中,作为某份报表的数据源,我们常常需要在某个存储过程中编写复杂的运算代码来汇总数据.分析函数便具备这样的能力,引用多行的数据值来进行多层面的聚合运算,在数据子集中进行颗粒度级别的排序控制.   分析函数不能嵌套,但是可以通过用视图或者表函数封装然后再套上一层分析函数 语法: function(argument1,argument2,argument3...) over ([partition by] [order by] [windowing-clause])

Oracle 分析函数的使用(主要是rollup用法)

分析函数是oracle 8.1.6中就引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高. 分析函数参考手册:http://xsb.itpub.net/post/419/33028 分析函数的使用方法1. 自动汇总函数rollup,cube,2. rank 函数, rank,dense_rank,row_numbe