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

hive窗口函数实现组内求和、累加、排序、计数

问题描述:
group by实现的分组聚合函数与元数据表对比难以实现后续进一步的数据加工处理
窗口函数更容易实现在元数据表上打分组聚合的补丁

窗口函数的一般公式:

<窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名> [rows between ?? and ???])

函数的位置可以放如下函数:
1.rank() ->如果有并列名次的行,会占用下一名次的位置。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,4

2.dense_rank() ->如果有并列名次的行,不占用下一名次的位置。比如正常排名是1,2,3,4,但是现在前3名是并列的名次,结果是:1,1,1,2。

3.row_number() ->不考虑并列名次的情况。比如前3名是并列的名次,排名是正常的1,2,3,4。

4.lag(col,n,default_val):获取往前第n行数据,col是列名,n是往上的行数,当第n行为null的时候取default_val

5.LEAD(col,n, default_val):往后第n行数据,col是列名,n是往下的行数,当第n行为null的时候取default_val

6.聚合函数(sum求和,平均、计数、最大最小值)作为窗口函数,可以在每一行的数据里直观的看到,截止到本行数据,统计数据是多少(最大值、最小值等)。同时可以看出每一行数据,对整体统计数据的影响。

自行体会,真嘟很好用
对比python也不算差,之后会上实际案例


http://www.kler.cn/a/320201.html

相关文章:

  • 手摸手5-springboot开启打印sql完整语句
  • opencascade源码学习之HLRAlgo包 -HLRAlgo_Projector
  • Excel数据动态获取与映射
  • Android集成FCM(Firebace Cloud Messaging )
  • ggplot2-scale_x_continuous()
  • 【WPF】Prism库学习(一)
  • Flutter路由
  • react crash course 2024(3) jsx语法及组件
  • mysql数据库:超键、候选键、主键与外键
  • 百度营销转化追踪(网页JS布码)
  • [Oracle] ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT
  • [AIGC实战]5分钟使用EAS一键部署MLLM多模态大语言模型应用
  • 如何去编写一个好的单元测试,通义灵码是如何快速生成单元测试?
  • 免费的高质量、美观的甘特图模板
  • 求二叉树的高度(递归和非递归)
  • 【排序算法】选择排序、堆排序
  • 【数据结构之线性表】有序表的合并(链表篇)
  • 论文笔记:基于共注意网络的多模态假新闻检测
  • 基于组网分割的超大规模设计 FPGA 原型验证解决方案
  • power bi制作各季度收入累加柱状图——日期表、calculate、datesytd
  • Windows内核编程基础(2)
  • Ubuntu 20.04安装CMake 3.1
  • go fiber 证书
  • C语言 | Leetcode C语言题解之第437题路径总和III
  • 深度学习:神经网络--手写数字识别
  • RocketMQ消息重试机制解析!