Hive的分析函数的使用

原文:

https://www.toutiao.com/i6769120000578945544/?group_id=6769120000578945544

我们先准备数据库、表和数据

Hive的分析函数的使用

 

Hive的分析函数的使用

 

Hive的分析函数的使用

 

开窗分析函数相对于mysql中的聚合函数区别是:分析函数是基于某个组多个数据进行计算聚合,而聚合函数是每个组返回一行数据。

官网

Hive的分析函数的使用

 

Hive的分析函数的使用

 

Hive的分析函数的使用

 

我们先做个例子感受下:

要求: 查询部门编号为10的所有的员工,按照薪资降序排序

Mysql实现:select empno,ename,deptno,sal from emp where deptno=10 order by sal desc;

Hive的分析函数的使用

 

如果要求是:将每个部门薪资最高的那个人的薪资显示在最后一行。

select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc) as sal_max from emp;

Hive的分析函数的使用

 

Hive的分析函数的使用

 

我们看官网这个位置

Hive的分析函数的使用

 

Hive的分析函数的使用

 

我们来解释里面的概念

当前有一个数据

Hive的分析函数的使用

 

CURRENT ROW

Hive的分析函数的使用

 

UNBOUNDED PRECEDING 初始行

PRECEDING 前一行

CURRENT ROW 当前行

FOLLOWING 后一行

UNBOUNDED FOLLOWING 最后一行

Hive的分析函数的使用

 

所以上面的语句我们变动下

select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sal_max from emp;

可以控制窗口大小

Hive的分析函数的使用

 

结果是一样的,但是窗口大小我们做了变化

Hive的分析函数的使用

 

我们准备数据

Hive的分析函数的使用

 

创建一个表

Hive的分析函数的使用

 

Hive的分析函数的使用

 

载入数据

load data local inpath '/data/hivetest/anal.txt' into table analytical;

Hive的分析函数的使用

 

语句1:

Hive的分析函数的使用

 

Hive的分析函数的使用

 

我们看结果

Hive的分析函数的使用

 

语句2

Hive的分析函数的使用

 

Hive的分析函数的使用

 

Hive的分析函数的使用

 

语句3

Hive的分析函数的使用

 

Hive的分析函数的使用

 

语句4

Hive的分析函数的使用

 

Hive的分析函数的使用

 

语句5

Hive的分析函数的使用

 

Hive的分析函数的使用

 

语句6

Hive的分析函数的使用

 

Hive的分析函数的使用

 

已上是窗口和基本语句的使用。

我们来看ROW_NUMBER

Hive的分析函数的使用

 

将每个部门薪资最高的那个人的薪资降序排序并且显示唯一的编号ROW_NUMBER

Hive的分析函数的使用

 

Hive的分析函数的使用

 

获取每个部门薪资最高的前两位(嵌套子查询)

Hive的分析函数的使用

 

Hive的分析函数的使用

posted on   那山的狐狸  阅读(229)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示