分享好友 最新动态首页 最新动态分类 切换频道
Hive常用函数总结二——开窗函数
2024-12-26 19:35

窗口函数又叫OLAP函数/分析函数,窗口函数兼具分组和排序功能。

Hive常用函数总结二——开窗函数

窗口函数最重要的关键字是 partition by 和 order by

具体语法如下:XXX over (partition by xxx order by xxx)

over()里面的 partition by 和 order by 都不是必选的,over()里面可以只有partition by,也可以只有order by,也可以两个都没有,需根据需求灵活运用。

创建表

 
 

sum over (partition by xxx order by xxx)

 
 

 注意

  • over()里面加 order by 表示:分组内从起点到当前行的pv累积,如,11号的pv1=10号的pv+11号的pv, 12号=10号+11号+12号
  • over()里面不加 order by 表示:将分组内所有值累加。

 
 
 

RANK():分组后,从1开始排名,遇到相同值会在名次中留下空位

DENSE_RANK():分组后,从1开始排名,遇到相同值不会留下空位

ROW_NUMBER():  分组后,从1开始排名,遇到相同值按照表中记录的顺序进行排列

NTILE的使用

需求

取数据排序后的前三分之一的数据

ntile可以看成是:把有序的数据集合平均分配到指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。

就是把组内数据分成几份

 
 

创建用户访问页面表: user_url

 
 

lag

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

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

 

 

lead

与lag相反

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

 
 

FIRST_VALUE

取分组内排序后,截止到当前行,第一个值

 
 

  • LAST_VALUE的使用

取分组内排序后,截止到当前行,最后一个值。

 
 

如果想要取分组内排序后最后一个值,则需要变通一下

使用的是 FIRST_VALUE 的倒序取出分组内排序最后一个值

 
 

创建员工薪水表 staff_salary

 
 

CUME_DIST:小于等于当前值的行数/分组内总行数。order默认顺序 :正序

 
 

 

这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。

创建用户访问表 user_date

 
 

GROUPING SETS的使用

grouping sets是一种将多个group by 逻辑写在一个sql语句中的便利写法。

等价于将不同维度的GROUP BY结果集进行UNION ALL。

 

:上述SQL中的GROUPING__ID,是个关键字,表示结果属于哪一个分组集合,根据grouping sets中的分组条件month,day,1是代表month,2是代表day。

 
  • CUBE的使用

根据GROUP BY的维度的所有组合进行聚合。

 
 

等价于

 
  • ROLLUP的使用

是CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合。

比如,以month维度进行层级聚合

 
 

把month和day调换顺序,则以day维度进行层级聚合

 
 

最新文章
外链建设:提升网站权重和流量的利器
序言外链是链接指向您网站的链接。它们是搜索引擎算法的重要组成部分,用于评估网站的权威性和相关性。外链建设是一个有计划的过程,包括获取和管理指向您网站的优质链接。本文将概述外链建设的规划和执行方案,帮助您提升网站的搜索排名和
系统介绍 · SEO优化按天计费系统
# 系统功能简介这套系统帮助SEO减少工作量,提升专业度,可以让用户自主操作,自主查询加词的系统。同时支持自己招募代理商,给注册的会员打折。一款好的seo按天计费系统,应该秉承着良好的用户体验,让SEO快速完成自己的工作,并且让客户
海创汇:从人工智能到ChatGPT,风口下的创业机会
文学创作、文案创作、生成视频、实时翻译......在传统思维中,许多具备一定技术门槛的创作型岗位也正在面临被人工智能“抢去饭碗”的风险。另一方面,随着ChatGPT+在不同行业的多模态应用,医疗业、媒体业、金融业等众多产业也将随之改变产
清空回收站是彻底删除吗?这四种方法揭晓答案‌
近日,有小伙伴留言咨询:“我刚刚不小心操作了清空回收站,清理完才想起自己本来是想恢复某些文件的。想问问大家,清空回收站是彻底删除吗?我丢失的文件还能找回吗?”在日常生活中,我们经常会遇到误删文件并将其移入回收站,随后又清空
突破极限!新型固态存储器在600°C下完美存储数据
在高科技领域,存储技术一直是推动信息化进程的重要基石。近日,科学家们在这一领域的研究取得了重大突破,他们开发出一种新型固态存储器,能够在最高温度达600°C的环境下稳固地存储信息。这一进展不仅打破了传统硅基存储器在高温环境下易
王牌清理大师最新版 v2.6.3
《王牌清理大师》是一款非常火热的手机清理软件,这款软件可以帮助使用者们更好进行手机存储空间内存释放,让大家手机运行变得更加丝滑顺畅,更多便捷优质辅助工具可以掌握享受,同时还可以清理隐藏在手机中的垃圾文件,快速扩宽手机内存,
华为荣耀10多少钱 华为荣耀10售价公布
  华为荣耀10多少钱:在2018年4月19日的华为新品发布会上,我们终于迎来了荣耀系列旗舰华为荣耀10手机,该机使用了华为新一代刘海屏设计,正面底部为指纹识别,看起来很像华为P20的兄弟款。麒麟970处理器和最高6GB内存+128GB存储组合让华
掌握AI绘画新技巧:轻松一键生成超逼真美女写真!
访问平台:首先,在你的手机或电脑上搜索“搜狐简单AI”,快速进入小程序页面。注册账号:如果你是第一次使用,需要注册一个新账号,填写基本信息即可。选择主题:在主页上,找到“美女写真”选项,根据自己的需求选择你想要生成的风格。输
科技之光智慧的探索者
一、科技之光:智慧的探索者二、技术革新与社会进步在当今这个信息爆炸和知识更新速度极快的时代,科技成为了推动社会进步的主要力量。无论是智能手机、互联网、大数据还是人工智能,每一次技术的突破都为人类生活带来了新的便利,也为我们
相关文章
推荐文章
发表评论
0评