Hive窗口函数-lead/lag函数
前面我们学习的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函数相关推荐
- Hive 窗口函数(开窗函数) over
文章目录 OVER函数 1.含义: 2.示例: OVER函数 1.含义: 窗口函数主要解决 分析整体数据时,多个数据和一个结果对应,为每一条数据开启指定行范围的窗口: over() 指定 分析函数 工 ...
- 产品价格变动带来的结算金额处理逻辑 lead/lag函数的使用
背景: 计算公式:结算金额 = 产品单价(数值随时会变动) * 产品点击数 产品价格随时会更改,例如上午00:00:00点--->13:59:59 是单价 3元,下午 14:00:00-23:5 ...
- hive窗口函数之排名函数row_number、rank和dense_rank
文章目录 简单排名 分组排名 练习1-取前两名学生 练习2-连续签到次数 排名函数主要有row_number.rank和dense_rank. 简单排名 row_number是行号,不会重复,rank ...
- hive SQL实现占比、同比、环比计算(lag函数,lead函数)
一.数据准备 -- 创建表并插入数据 CREATE TABLE `saleorder` (`order_id` int ,`order_time` date ,`order_num` int ) -- ...
- hive窗口函数(开窗函数)
一.[窗口函数概述] 窗口函数(Window functions)是一种SQL函数,非常适合于数据分析,因此也叫做OLAP函数,其最大特点是:输入值是从SELECT语句的结果集中的一行或多行的&quo ...
- Hive窗口函数Over和排序函数Rank
- 目录 1.聚合函数+over 2.partition by子句 3.order by子句 4.★window子句(里面包含) - PRECEDING:往前 - FOLLOWING:往后 - CUR ...
- Hive学习---4、函数(单行函数、高级聚合函数、炸裂函数、窗口函数)
1.函数 1.1 函数简介 Hive会将常用的逻辑封装成函数给用户进行使用,类似java中的函数. 好处:避免用户反复写逻辑,可以直接拿来使用 重点:用户需要知道函数叫什么,能做什么 Hive提供了大 ...
- MySQL中LAG()函数和LEAD()函数的使用
一.窗口函数的基本用法 从MySQL8之后才开始支持窗口函数 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列& ...
- [Mysql] LAG()函数 | LEAD()函数
美图欣赏2022/06/04 窗口函数的基本语法 <窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>) ※ ...
最新文章
- 递归下降文法C语言实验报告,递归下降语法分析器实验报告.doc
- shell脚本自动记录登陆后 的IP地址和历史记录
- windows 2008+Oracle 11g R2 故障转移群集配置
- .net生成图片验证码
- 数据结构源码笔记(C语言):二叉排序树的基本操作算法
- iOS:后台定位并实时向服务器发送位置
- 《Head First设计模式》第九章(1)迭代器模式
- TZOJ--1518: 星星点点 (二进制模拟)
- Linux多线程工作笔记0005---Linux多线程基础_创建线程pthread_create_线程等待_线程终止
- 2020.07.08_Multi-passage BERT: A Globally Normalized BERT Model for Open-domain Question Answering
- 第五:Python发送邮件时获取最新测试报告并发送邮件
- # 每天阅读一个 npm 模块(7)- delegates
- 常见的SQL面试题:经典50题(附详解)
- 使用ASP.NET快速开发平台,获得表单源码,用珍藏资料换来的代码生成器!
- 修改域名dns服务器地址,易名中国域名如何修改DNS设置方法
- Word:表格中绘制斜线表头
- vos3000配置与通讯测试(一)
- 思科三层交换机不同vlan互通_Cisco三层交换机实现不同vlan之间的通信
- MySQL优化之执行计划
- Windows应用程序安装向导制作