前面我们学习的first_value和last_value 取的是排序后的数据截止当前行的第一行数据和最后一行数据

Lag和Lead分析函数可以在一次查询中取出当前行后N行和前N行的数据,虽然可以不用排序,但是往往只有在排序的场景下取前面或者后面N 行数据才有意义

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

  • LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值

第一个参数为列名,第二个参数为往上第n行(默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

  • LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值

第一个参数为列名,第二个参数为往下第n行(默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)

  • lead(col1,n,default)over(partiton by col2,order by col3):表示数据按照col2分区后,按照col3排序,然后在该条记录向后寻找n条数据(n一般为1),找到数据中的col1列。若为最后一条数据,则为default(默认为Null)。

  • lag(col1,n,default)over(partiton by col2,order by col3):表示数据按照col2分区后,按照col3排序,然后在该条记录向前寻找n条数据(n一般为1),找到数据中的col1列。若为最后一条数据,则为default(默认为Null)。

Hive窗口函数-lead/lag函数相关推荐

  1. Hive 窗口函数(开窗函数) over

    文章目录 OVER函数 1.含义: 2.示例: OVER函数 1.含义: 窗口函数主要解决 分析整体数据时,多个数据和一个结果对应,为每一条数据开启指定行范围的窗口: over() 指定 分析函数 工 ...

  2. 产品价格变动带来的结算金额处理逻辑 lead/lag函数的使用

    背景: 计算公式:结算金额 = 产品单价(数值随时会变动) * 产品点击数 产品价格随时会更改,例如上午00:00:00点--->13:59:59 是单价 3元,下午 14:00:00-23:5 ...

  3. hive窗口函数之排名函数row_number、rank和dense_rank

    文章目录 简单排名 分组排名 练习1-取前两名学生 练习2-连续签到次数 排名函数主要有row_number.rank和dense_rank. 简单排名 row_number是行号,不会重复,rank ...

  4. hive SQL实现占比、同比、环比计算(lag函数,lead函数)

    一.数据准备 -- 创建表并插入数据 CREATE TABLE `saleorder` (`order_id` int ,`order_time` date ,`order_num` int ) -- ...

  5. hive窗口函数(开窗函数)

    一.[窗口函数概述] 窗口函数(Window functions)是一种SQL函数,非常适合于数据分析,因此也叫做OLAP函数,其最大特点是:输入值是从SELECT语句的结果集中的一行或多行的&quo ...

  6. Hive窗口函数Over和排序函数Rank

    - 目录 1.聚合函数+over 2.partition by子句 3.order by子句 4.★window子句(里面包含) - PRECEDING:往前 - FOLLOWING:往后 - CUR ...

  7. Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)

    1.函数 1.1 函数简介 Hive会将常用的逻辑封装成函数给用户进行使用,类似java中的函数. 好处:避免用户反复写逻辑,可以直接拿来使用 重点:用户需要知道函数叫什么,能做什么 Hive提供了大 ...

  8. MySQL中LAG()函数和LEAD()函数的使用

    一.窗口函数的基本用法 从MySQL8之后才开始支持窗口函数 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列& ...

  9. [Mysql] LAG()函数 | LEAD()函数

    美图欣赏2022/06/04 窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ ...

最新文章

  1. 递归下降文法C语言实验报告,递归下降语法分析器实验报告.doc
  2. shell脚本自动记录登陆后 的IP地址和历史记录
  3. windows 2008+Oracle 11g R2 故障转移群集配置
  4. .net生成图片验证码
  5. 数据结构源码笔记(C语言):二叉排序树的基本操作算法
  6. iOS:后台定位并实时向服务器发送位置
  7. 《Head First设计模式》第九章(1)迭代器模式
  8. TZOJ--1518: 星星点点 (二进制模拟)
  9. Linux多线程工作笔记0005---Linux多线程基础_创建线程pthread_create_线程等待_线程终止
  10. 2020.07.08_Multi-passage BERT: A Globally Normalized BERT Model for Open-domain Question Answering
  11. 第五:Python发送邮件时获取最新测试报告并发送邮件
  12. # 每天阅读一个 npm 模块(7)- delegates
  13. 常见的SQL面试题:经典50题(附详解)
  14. 使用ASP.NET快速开发平台,获得表单源码,用珍藏资料换来的代码生成器!
  15. 修改域名dns服务器地址,易名中国域名如何修改DNS设置方法
  16. Word:表格中绘制斜线表头
  17. vos3000配置与通讯测试(一)
  18. 思科三层交换机不同vlan互通_Cisco三层交换机实现不同vlan之间的通信
  19. MySQL优化之执行计划
  20. Windows应用程序安装向导制作

热门文章

  1. C++:简易的空战游戏
  2. 腾讯云服务器标准型SN3n和S4性能区别对比
  3. 将MySQL中的中文姓名转为拼音
  4. 【利用python进行数据分析】之安装EPD
  5. C语言符号位补码要变吗,C语言关于补码的解释及误区
  6. linux 导出堆转储文件
  7. 树莓派3 远程控制方法
  8. 苹果cmsv10首涂第十一套会员中心功能增强版独立手机模板
  9. Windows XP下编译openssl-1.0.0 (下)
  10. Android 11 高版本 出现外部存储无法访问的问题