当前位置: 首页 > news >正文

Hive窗口函数大全

Hive窗口函数

  • 一、偏移量函数
    • lag
    • lead
  • 二、窗口分析函数
    • first_value
    • last_value
  • 三、排序函数
    • rank
    • dense_rank
    • row_number

一、偏移量函数

lag

语法:lag(col,n,default_val)
返回值:字段类型
说明:往前第n行数据。

lag(column字段,第n行,默认值)
lag函数能够取出往前n行的数据值,如果数据为空值,则取默认值

lead

语法:lead(col,n, default_val)
返回值:字段类型
说明:往后第n行数据。

lead(column字段,第n行,默认值)
lead函数能够取出往后n行的数据,如果数据为空值,则取默认值

Tip:lead的英文翻译为领先的,这里的领先指的是当前数据行,因此想要取往后的数据需要使用lead
Tip:lag的英文翻译为落后的,这里的落后指的是当前数据行,因此想要取往前的数据需要使用lag

二、窗口分析函数

first_value

语法:first_value (col,true/false)
返回值:字段类型
说明:当前窗口下的第一个值,第二个参数为true,跳过空值。

first_value能够取出当前窗口下的第一个值,第二参数能够选择跳过空值。

last_value

语法:last_value (col,true/false)
返回值:字段类型
说明:当前窗口下的最后一个值,第二个参数为true,跳过空值。

last_value能够取出当前窗口下的第一个值,第二参数能够选择跳过空值。

Tip:窗口分析函数通常需要对分区数据进行order by排序,经过排序后的再使用窗口分析函数

三、排序函数

rank

语法:rank() over(……)
返回值:int
说明:排名相同时会重复,总数不会减少(12225……)。

rank为跳跃排序函数

dense_rank

语法:dense_rank() over(……)
返回值:int
说明:排名相同时会重复,总数会减少(12223……)。

dense_rank为不跳跃排序函数

row_number

语法:row_number() over(……)
返回值:int
说明:数据值相同时不会重复,总数不会减少(1234567……)。

row_number为顺序唯一排序函数

Tip:排序函数为面试常考题目,务必掌握捏。

http://www.lryc.cn/news/97463.html

相关文章:

  • 达闼面试(部分)(未完全解析)
  • Makefile常用函数
  • mysql的一些知识整理
  • 修改密码和再次确认密码的js和element-ui的使用
  • 蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】
  • kubernetes调试利器——kubectl debug工具
  • 浅谈es5如何保证并发请求的返回顺序
  • 深入浅出Pytorch函数——torch.squeeze
  • 【LeetCode】121.买卖股票的最佳时机
  • 【力扣】74. 搜索二维矩阵 <二分法>
  • Spring Task+Cron表达式
  • 你们公司的【前端项目】是如何做测试的?字节10年测试经验的我这样做的...
  • 华为战略方法论:BLM模型之关键任务与依赖关系
  • django的ORM模板的fake更新
  • 239.滑动窗口最大值
  • Redis基础原理
  • .NET 5 Web API 中JWT详细教程:保护你的Web应用
  • MyBatis-Plus自动填充
  • Dubbo服务提供者失效踢出原理解析
  • el-select下拉框处理分页数据,触底加载更多
  • 如何设计自动化测试脚本?一文5个步骤带你从0到1设计
  • PostgreSQL实战-数据库迁移部署
  • PHP数据库
  • Mybatis的基本操作--增删改查
  • Qt简单实现密码器控件
  • fpga_pwm呼吸灯(EP4CE6F17C8)
  • WPF实战学习笔记20-设置首页启动页
  • uniapp实现预约时间选择弹窗组件
  • opencv 之 外接多边形(矩形、圆、三角形、椭圆、多边形)使用详解
  • 断路器分合闸速断试验