Hive开窗函数结构:
xx() over(partition by xx order by xx ROWS/RANGE between xx and xx)

一、Hive开窗函数,大致有两类:排序开窗、聚合开窗
1. 排序开窗函数
row_number():组内排名后获取行号
rank():组内排名(排名可能不连续)
dense_rank():组内排名(排名连续)
percent_rank():计算给定行的百分比排名,可以用来计算超过了百分之多少的人。(当前行的rank值-1)/(分组内的总行数-1)

first_value()
last_value()

lag(col, n, default):用于统计窗口内往上取第n个值
lead(col, n, default):用于统计窗口内往下取第n个值

cume_dist(col):计算某窗口或分区中截止某值时的累积分布。假定升序排序,则累积分布=小于等于当前值x的行数/分区内的总行数。
ntile():将分区中已排序的行划分为大小尽可能相等的指定数量的排名的组,并返回给指定行所在组的排名。

2. 聚合开窗函数

sum()
count()
avg()
max()
min()

参考链接:
hive中的开窗函数
hive开窗函数使用,用案例演示

二、控制窗口范围rows/range between的应用
在使用hsql完成一些业务需求的时候,我们经常会用到窗口函数,某些场景下会涉及到需要控制窗口函数的范围来满足业务需求,这个时候就需要用到rows/range between了,使用rows/range between可以根据自己的需求任意的控制窗口函数的范围。

rows和range的区别:
rows: 按物理行,来进行窗口级别里再次进行范围选择的,表示的是行,如前n行,后n行
range: 按逻辑行,来进行窗口级别里再次进行范围选择的,表示的是具体值,如比这个值小n的行,比这个值大n的行。此时,相同行会被合并成同一条数据再进行计算,相同行窗口计算时的结果也是相同的(是否是相同行,需根据order by 排序时的结果决定)。
当有order by时:
相同行是指order by排序时具有相同数值的行;
不同行是指order by排序时具有不同数值的行。
没有order by时:
当前分区的所有行都包含在框架中,因为所有行都会成为当前行的相同行。

between…and…关键字含义
CURRENT ROW:当前行
UNBOUNDED:无边界
PRECEDING:往前(rows),在…之前(range)
FOLLOWING:往后(rows),在…之后(range)

如:rows between …… and ……current row 当前行unbounded following 后面所有行
unbounded preceding 前面所有行n following  后面n行
n preceding  前面n行

参考链接:
hive中控制窗口范围rows between的使用
SQL总结-开窗函数
窗口函数rows between 、range between的使用

大数据-Hive开窗函数相关推荐

  1. 2021年大数据Hive(八):Hive自定义函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...

  2. 2021年大数据Hive(七):Hive的开窗函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的开窗函数 一.窗口函数 ROW_NUMBER,RANK ...

  3. 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...

  4. 2021年大数据Hive(十二):Hive综合案例!!!

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive综合案例 一.需求描述 二.项目表的字段 三.进 ...

  5. 2021年大数据Hive(十一):Hive调优

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive调优 一.本地模式 1.空key处理 二.SQL ...

  6. 2021年大数据Hive(九):Hive的数据压缩

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive的数据压缩 一.MR支持的压缩编码 二.压缩配置 ...

  7. 2021年大数据Hive(四):Hive查询语法

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...

  8. 2021年大数据Hive(三):手把手教你如何吃透Hive数据库和表操作(学会秒变数仓大佬)

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive数据库和表操作 一.数据库操作 1.创建数据库 2.创建 ...

  9. 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...

  10. 2021年大数据Hive(一):​​​​​​​Hive基本概念

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 历史文章 前言 Hive基本概念 一.Hive介绍 1.什么是Hive 2.为什么使 ...

最新文章

  1. Android 中文 API 文档 (45) —— AbsoluteLayout.LayoutParams
  2. PHP比较时间段一与时间段二是否有交集
  3. 磁盘 io 的性能指标 简介
  4. python百分号和斜杠_Python中正反斜杠(‘/’和‘\’)的意义与用法
  5. 问题 H: 方块填数(2012年蓝桥决赛第5题--dfs)
  6. 计算机编码规则之:Base64编码
  7. 前端学习(3073):vue+element今日头条管理-删除文章失败(配合axios使用)
  8. 聚焦消费和产业两大物联网赛道,腾讯连连全新升级
  9. 业务逻辑实现方式的讨论:存储过程 good or bad?
  10. 如何使用github和git进行团队合作开发(队友和owner的仓库连接)
  11. [2018.03.13 T3]联盟(alliances)
  12. Andorid11 暗码启动应用(一)
  13. C#实现百度AI-实时语音识别转写-附源码
  14. 2022年新冠疫情后上海的电子商务,数字化经济可能的新趋势
  15. 怎么用计算机给u盘加密文件,win10电脑怎么给U盘文件夹加密
  16. ANSYS的几种动画模式
  17. 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)
  18. 用设计模式解决电商项目的更新库存业务
  19. 类中数组成员变量怎么初始化,数组名与指针的区别
  20. 2016计算机学科夏令营上机考试C:反反复复(字符串处理)

热门文章

  1. MFC SetTimer函数的用法
  2. 技术分享| 如何部署安装分布式序列号生成器系统
  3. macOS苹果电脑下载m3u8、ts视频
  4. 国内的一个不错的ftp搜索引擎
  5. 多元统计分析 (一):聚类分析
  6. php smarty 配置,php Smarty详细配置
  7. 基于模糊PID的液压舵机伺服系统
  8. IBM刀片服务器虚拟化方案
  9. java如何生成jar包
  10. android qq输入法表情,QQ输入法(Android)4.8 表情进行时