pb9数据窗口中显示行数据与当前行区别_Hive的窗口函数

聚合函数(如sum()、avg()、max()等等)是针对定义的行集(组)执行聚集,每组只返回一个值。

窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值。如既要显示聚集前的数据,又要显示聚集后的数据。

窗口查询有两个步骤:将记录分割成多个分区,然后在各个分区上调用窗口函数。

语法:主要是over( PARTITION BY (根据某条件分组,形成一个小组)….ORDER BY(再组内进行排序) …. )

over:

 over (order by col1)                     --按照 col1 排序, 没分区范围就是整个表over (partition by col1)                 --按照 col1 分区 over (partition by col1 order by col2)   -- 按照 col1 分区,按照 col2 排序--带有窗口范围over (partition by col1 order by col2 ROWS 窗口范围)   -- 在窗口范围内,按照 col1 分区,按照 col2 排序

实例:

7d603eb8c3008bdfcb705ae30c3f7ce5.png

-- 按照age排序,每阶段的age数据进行统计求和

select id,age,name, count() over(order by age) from wt1;

结果:

e6e9f52c221bf29eb9b37974e9d9596c.png

-- 窗口范围是表下按照age进行分区

-- 在分区里面,再按照age进行排序

 select id,age,name, count() over(partition by age order by age) from wt1;

5f46ea82b7655f1f6120ec37e8c5e2ec.png

-- 窗口范围是表下按照age进行分区

-- 在分区里面,再按照id进行降序排序

 select id,age,name, count() over(partition by age order by age) from wt1;

序列函数

row_number:会对所有数值,输出不同的序号,序号唯一且连续,如:1、2、3、4、5。

rank:会对相同数值,输出相同的序号,而且下一个序号间断,如:1、1、3、3、5。

dense_rank:会对相同数值,输出相同的序号,但下一个序号不间断,如:1、1、2、2、3。

ROW_NUMBER()

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 

表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。

表数据:

3910b559efb9822c43b4f834e7496081.png

-- rn_id 按照性别分组,按照id排序

select id,sex,name, row_number() over(partition by sex order by id desc) from student;

64f4c0224875ddd49c94abcbc10def7e.png

--查询student表中按照sex分组,取每组的最小id的记录

select a.* from 
(select sex,age,id, row_number() over(partition by sex order by id) as rn from student) a
where a.rn = 1;

7469de5fbbfa31bf881c18793f5a1c38.png

over中partition by和distribute by区别:

1)partition by [key..] order by [key..]只能在窗口函数中使用,而distribute by [key...] sort by [key...]在窗口函数和select中都可以使用。

2)窗口函数中两者是没有区别的

3)where后面不能用partition by

Window 函数:

ROWS窗口函数中的行选择器 rows between [n|unbounded preceding]|[n|unbounded following]|[current row] and [n|unbounded preceding]|[n|unbounded following]|[current row]

参数解释:

n行数

unbounded不限行数

preceding在前N行

following在后N行

current row当前行

应用场景:

1)查询当月销售额和近三个月的销售额

2)查询当月销售额和今年年初到当月的销售额

表数据:

bb74cc3101f0e87cf93245b167334d18.png

实例:

-- 查询当月销售额和近三个月的销售额

SELECT 
y,
m,
sales,
sum(sales) OVER(PARTITION BY y ROWS between unbounded preceding and current row) AS s2
FROM sale_table;

818a4e82064dc6a6db882081b91a03d5.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下shell脚本论文,Linux下Shell脚本编程

1、 shell脚本是什么它是一种脚本语言,并非编程语言。可以使用一些逻辑判断、循环等语法。可以自定义子函数,是系统命令的集合。shell脚本可以实现自动化运维,大大增加我们的工作效率。2、shell脚本结构以及执行方法开头行指定bash路径: #! /…

重构 pdf_三维温度场的重构方法,更准确地监测储能系统的电池堆内部温度

储能系统是微电网的核心组成部分,其热管理对于微电网的安全与稳定具有重要意义。相对于表面温度,电池堆内部温度场更有意义。针对红外热像仪无法监测电池堆内部温度场的问题,浙江工业大学分布式能源与微网研究所、浙江工业大学机械工程学院的…

linux找不到光口,以太坊查看命令_求助 输入ifconfig命令 后看不到eth0但是有eth3和eth4-CSDN论坛_区块链百科...

Ⅰ 怎么查看 /etc/sysconfig/network-scripts/ifcfg-eth0在你的这串英文前面加个 cat 空格就行Ⅱ 在linux下如何通过命令查网卡配置在linux下通过命令查网卡配置的方法如下:1、首先在电脑上打开Linux系统,然后进入Linux系统的终端窗口。Ⅲ 为什么用命令e…

开发物体识别桌、_想用人工智能实现安全风险管控?快来试试EasyMonitor一站式视频监控开发平台...

随着 AI 技术的日益成熟,越来越多的传统企业都希望用 AI 能力升级原有的管理系统,进而智能化解决业务问题、提高人效。尤其在安全生产领域中,虽然视频监控的覆盖率逐年提升,但大多企业还在沿用人工抽检的方式对设备、区域、人员进…

pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...

在传统口腔修复体的制作过程中,制作工艺繁琐,制作周期长,加工过程中依赖人力操作,金属材料在制作过程中易发生变形,难以控制尺寸精度,使患者舒适度下降。而采用3D打印技术生产的修复体可根据患者自身进行定…

linux semaphore,在CentOS 7操作系统上安装Semaphore的方法

本文介绍在CentOS 7操作系统上安装Semaphore的方法,安装完后就可以使用Semaphore来管理Ansible Web UI了。一、安装MariaDB数据库和git 2.x参考文章1、安装MariaDB数据库参考文章2、安装git 2.x确认git版本:$ git --versiongit version 2.16.5二、安装An…

android 绕过root检测,公主连结怎么绕过root检测 绕过root检测方法一览

公主连结刷初始怎么绕过root检测呢?很多小伙伴想刷初始可是经常被root检测,有没有什么办法才能绕过检测呢?实机可以用magisk自带的hide功能,xposed框架可以选择rootcloak,ANRC在x86半残废可能能用,Android版只是检测su二进制文件是否存在&a…

鸿蒙后的时期有什么,鸿蒙系统什么时候上市 华为鸿蒙系统有多厉害?

由于谷歌停止与华为的部分合作,华为的绝密武器“鸿蒙系统”也随之曝光。按照余承东的说法,早在七年之前鸿蒙系统已经开始研发,时至今日鸿蒙系统终于有机会上市,成为华为的新操作系统。鸿蒙系统被誉为备胎计划,此系统就…

android确认密码代码,Android自定义View实现验证码or密码输入框

前言最近项目中有支付功能,用户输入密码时要类似微信支付密码输入框的样式,本想直接copy网上的,但设计姐姐总是对样式挑三拣四,抽空自己自定义了一个,无奈之下抽空自定义了个,并把它贴到GitHub上供网友们参…

华为鸿蒙再次公测,华为鸿蒙开启第二轮公测,新增7款机型,有你的吗?

原标题:华为鸿蒙开启第二轮公测,新增7款机型,有你的吗?华为鸿蒙操作系统,相信这是很多人都非常期待的操作系统,这个操作系统经过各方评测之后,得到的反馈都要远比华为此前所搭载的基于安卓开发的…

同行不支持鸿蒙系统,鸿蒙系统虽好,但也需要国内同行支持

原标题:鸿蒙系统虽好,但也需要国内同行支持鸿蒙系统将在不久正式推出,但是鸿蒙系统虽好,但也离不开国内同行的支持。鸿蒙系统的细节透露后,被广大数码爱好者所重视。作为一款不同于苹果IOS以及安卓系统外的其他手机系统…

linux主机开放ftp、http服务_Linux系统与Windows系统哪个好呢(一)

当Windows与Linux作为VPS云主机操作系统的对比时,需要专注于小企业主最相关的因素,一个明显的赢家出现了,现在我们来看看吧。Linux与Windows的比较:任何虚拟主机操作系统都应该快速且稳定,但当企业选择VPS主机时&#…

国内厂商对鸿蒙系统的态度,鸿蒙系统4月上线,国内手机厂商态度很关键!小米、中兴出乎意料...

前段时间,华为举行了新品发布会,在这个发布会上,华为宣布了两件事情,第一就是华为全新的折叠屏手机Mate X2正式亮相了,而第二件事情更加让人惊喜,余承东已经确认,华为的鸿蒙系统将会在4月份上线…

用linq查询html中div个数,C#使用Linq to XML进行XPath查询

最近在用到HtmlAgliltyPack进行结点查询时,发现这里选择结点使用的是XPath。所以这里总结一下在C#中使用XPath查询XML的方式。习惯了用Linq,这里也是用的Linq to xml的。Linq To XML的核心类是XDocument和XElement、XAttribute,下面简单介绍一…

学编导还是学计算机,高二学编导烧钱吗

高二学编导烧钱吗2019-09-22 10:34:23文/马妍高二学编导还是很费钱的。艺术专业的学习普遍都很贵,学编导总体需要3-6万元左右。一般培训班要两到三万,还需要购买一些专业的设备,费用也不低。编导专业简介编导有广义和狭义之分,狭义…

用计算机录制一段30,测评!电脑录屏软件哪个好用?小白进阶第1阶段

原标题:测评!电脑录屏软件哪个好用?小白进阶第1阶段电脑录屏软件哪个好用?最近短视频越来越火,小卓发现身边不少人都在捣鼓视频,有拍摄的有录屏的比比皆是。问了一下,大多是对此感兴趣的&#x…

java word 转换 图片_怎样把手机上的图片转换成word?

在当今这个快速发展的时代,人手一部手机是件很正常的事,小编的手机上往往会存有许多喜欢的文字图片,可是那么多的图片又会占用很多手机的空间,这样就有些不好了。庆幸的是最近小编学习到一个可以将手机上的图片转化成文字的技巧&a…

uic计算机科学与技术,北京师范大学-香港浸会大学联合国际学院UIC理工科技学部高招网...

马真真计算机科学与技术专业,现于美国南加州大学攻读硕士学位想想当初报考UIC的时候是冲着网上一个学长说的“如果你想要学习,那么来UIC绝对不会后悔”,现在毕业了,发现,确实如此。四年,学习了方方面面的知识&#xff…

应付账款账龄分析模板_6万字长文剖析宁德时代(三):财务分析

本文为《6万字长文剖析宁德时代》的第三篇。本文来自微信公众号: 凯昇资本(ID:gh_9c57a4031683),头图来自:视觉中国在《6万字长文剖析宁德时代(一):核心技术》和《6万字长文剖析宁德时代(二):市场分析》中我…

开发db文件_Swoole高效跟传统的web开发有什么区别?life

一、swoole的运行模式Swoole高效跟传统的web开发有什么区别,除了传统的LAMP/LNMP同步开发模式,swoole的异步开发模式是怎么样的。我的官方群点击此处。获取更多的swoole学习资料以及视频源码笔记。程序猿的生活:面试12家公司,收获…