Hive---窗口函数
Hive窗口函数
其他函数: Hive—Hive函数
文章目录
- Hive窗口函数
- 开窗
- 数据准备
- 建表
- 导入数据
- 聚合函数
- window子句
- LAG(col,n,default_val) 往前第 n 行数据
- LEAD(col,n, default_val) 往后第 n 行数据
- ROW_NUMBER() 会根据顺序计算
- RANK() 排序相同时会重复,总数不会变
- DENSE_RANK() 排序相同时会重复,总数会减少
- first_value取分组内排序后,截止到当前行,第一个值
- last_value取分组内排序后,截止到当前行,最后一个值
- NTILE(n) 数据切片函数
开窗
又称开窗函数
OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化
数据准备
字段为 name,orderdata,cost
jack,2015-01-01,10
tony,2015-01-02,15
jack,2015-02-03,23
tony,2015-01-04,29
jack,2015-01-05,46
jack,2015-04-06,42
tony,2015-01-07,50
jack,2015-01-08,55
mart,2015-04-08,62
mart,2015-04-09,68
neil,2015-05-10,12
mart,2015-04-11,75
neil,2015-06-12,80
mart,2015-04-13,94
建表
----建表------
create table if not exists t_window(name string,orderdate date,cost int
)
导入数据
原始数据的已经上传到hdfs上
load data inpath '/order.csv' into table t_window;# 查看数据
select * from t_window;

聚合函数
常见聚合函数(count(),sum(),max(),min(),avg()……)
---全表数据cost的总和
select name,orderdate,cost,sum(cost) over () from t_window;

window子句
UNBOUNDED 起点
CURRENT ROW 当前行
n PRECEDING 往前 n 行数据
n FOLLOWING 往后 n 行数据
UNBOUNDED PRECEDING 表示从前面的起点
UNBOUNDED FOLLOWING 表示到后面的终点
select name,orderdate,cost,sum(cost) over (partition by name order by orderdate rows between unbounded preceding and unbounded following) as row1,---个人累计消费总和sum(cost) over(partition by name order by orderdate) as row2,--个人截止到当前时间的消费总和sum(cost) over(partition by name order by orderdate rows between unbounded preceding and current row ) as row3,--个人截止到当前时间的消费总和sum(cost) over(partition by name order by orderdate rows between 1 preceding and current row ) as row4,---当前消费额与上一次消费额的总和sum(cost) over(partition by name order by orderdate rows between 1 preceding and 1 following ) as row5, --前行和前边一行及后面一行sum(cost) over(partition by name order by orderdate rows between current row and UNBOUNDED FOLLOWING ) as row6,--当前行及后面所有行sum(cost) over(partition by name order by orderdate rows between current row and 3 following) as row7 --当前消费与后三次的消费总额
from t_window;

LAG(col,n,default_val) 往前第 n 行数据
分区内滞后当前行的参数值
select name,orderdate,cost,-----前一个日期lag(orderdate,1,'1990-01-01') over (partition by name order by orderdate) as row1
from t_window;

LEAD(col,n, default_val) 往后第 n 行数据
分区内当前行前导行的参数值
select name,orderdate,cost,----后一个日期lead(orderdate,1,'1990-01-01') over (partition by name order by orderdate) as row2
from t_window;

ROW_NUMBER() 会根据顺序计算
row_number()从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列
---根据名字分区,消费金额降序排序
select name,orderdate,cost,row_number() over (partition by name order by cost desc ) as row1
from t_window;

RANK() 排序相同时会重复,总数不会变
rank() 生成数据项在分组中的排名,排名相等会在名次中留下空位
select name,orderdate,cost,rank() over (partition by name order by cost desc )as row2
from t_window;

DENSE_RANK() 排序相同时会重复,总数会减少
dense_rank() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位
select name,orderdate,cost,dense_rank() over (partition by name order by cost desc )as row3
from t_window;

first_value取分组内排序后,截止到当前行,第一个值
select name,orderdate,cost--------按名字分区,查询第一笔消费的时间与所有时间对比(有需求查询员工的入职时间,与此类似),first_value(orderdate)over (partition by name order by orderdate)as time1
from t_window;

last_value取分组内排序后,截止到当前行,最后一个值
select name,orderdate,cost--------按名字分区,查询当前行的最后一个时间,last_value(orderdate)over (partition by name order by orderdate)as time2
from t_window;

NTILE(n) 数据切片函数
把有序窗口的行分发到指定数据的组中,各个组有编号,编号从 1 开始,对于每一行,NTILE 返回此行所属的组的编号
注意:n 必须为 int 类型
select name,orderdate,cost,ntile(3) over() as row1---把数据分成三份
from t_window;

select name,orderdate,cost,ntile(3) over(partition by name)as row2---按名字分组 切片成三份
from t_window;

相关文章:
Hive---窗口函数
Hive窗口函数 其他函数: Hive—Hive函数 文章目录Hive窗口函数开窗数据准备建表导入数据聚合函数window子句LAG(col,n,default_val) 往前第 n 行数据LEAD(col,n, default_val) 往后第 n 行数据ROW_NUMBER() 会根据顺序计算RANK() 排序相同时会重复,总数不会变DENSE…...
JavaSe第7次笔记
1. C语言里面,NULL是0地址。Java中null和0地址没关系。 2.数组可以做方法的返回值。 3.可以使用变量作为数组的个数开辟空间。 4.断言assert,需要设置。 5.排序:Arrays. sort(array); 6.查找: int index Arrays. binarySea…...
什么是 Service 以及描述下它的生命周期。Service 有哪些启动方法,有 什么区别,怎样停用 Service?
在 Service 的生命周期中,被回调的方法比 Activity 少一些,只有 onCreate, onStart, onDestroy, onBind 和 onUnbind。 通常有两种方式启动一个 Service,他们对 Service 生命周期的影响是不一样的。 1. 通过 startService Service 会经历 onCreate 到 onStart,然后处于运行…...
Redis部署
JAVA安装 mkdir /usr/local/javacd /usr/local/java/wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u13…...
AT32F437制作Bootloader然后实现Http OTA升级
首先创建一个AT32F437的工程,然后发现调试工程配置这里的型号和创建工程选的型号不一致,手动更改一下,使用PW Link下载程序的话还要配置一下pyocd.exe的路径。 打开drv_clk.c文件的调试功能看下系统时钟频率。 项目使用的是AT32F437VMT7芯片&…...
Springboot项目启动初始化数据缓存
1.从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解, PostConstruct和PreDestroy,这两个注解被用来修饰一个非静态的void()方法,被PostConstruct修饰的方法会在服务器加载Servlet的时候运…...
深度学习必备知识——模型数据集Yolo与Voc格式文件相互转化
在深度学习中,第一步要做的往往就是处理数据集,尤其是学习百度飞桨PaddlePaddle的小伙伴,数据集经常要用Voc格式的,比如性能突出的ppyolo等模型。所以学会数据集转化的本领是十分必要的。这篇博客就带你一起进行Yolo与Voc格式的相互转化&…...
数据、数据资源及数据资产管理的区别
整理不易,转发请注明出处,请勿直接剽窃! 点赞、关注、不迷路! 摘要:数据、数据资源、数据资产 数据、数据资源及数据资产的区别 举例 CRM系统建设完成后会有很多数据,这些数据就是原始数据,业务…...
标度不变性(scale invariance)与无标度(scale-free)概念辨析
文章目录标度标度种类名义标度序级标度等距标度比率标度常用标度方法不足标度不变性标度不变(Scale-invariant)曲线和自相似性(self-similarity)射影几何分形随机过程中的标度不变性标度不变的 Tweedie distribution普适性&#x…...
WMS仓库管理系统解决方案,实现仓库管理一体化
仓库是企业的核心环节,若没有对库存的合理控制和送货,将会造成成本的上升,服务品质的难以得到保证,进而降低企业的竞争能力。WMS仓库管理系统包括基本信息,标签,入库,上架,领料&…...
css常见定位、居中方案_css定位居中
一、 定位分类 1、静态定位 position:static;(默认,具备标准流条件) 2、相对定位 position:relative; 通过 top 或者 bottom 来设置 Y 轴位置 通过 left 或者 right 来设置 X 轴位置 特点: 相对定位不会脱离文档流相对于自…...
【微信小程序】-- 自定义组件 -- 创建与引用 样式(三十二)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
ArangoDB——AQL编辑器
AQL 编辑器 ArangoDB 的查询语言称为 AQL。AQL与关系数据库管理系统 (RDBMS)区别在于其更像一种编程语言,更自然地适合无模式模型,并使查询语言非常强大,同时保持易于读写。数据建模概念 数据库是集合的集合。集合存储记录,称为文…...
Lesson 9.1 集成学习的三大关键领域、Bagging 方法的基本思想和 RandomForestRegressor 的实现
文章目录一、 集成学习的三大关键领域二、Bagging 方法的基本思想三、RandomForestRegressor 的实现在开始学习之前,先导入我们需要的库,并查看库的版本。 import numpy as np import pandas as pd import sklearn import matplotlib as mlp import sea…...
basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)
解决了官方示例指令需要科学上网才能运行的问题(通过手动下载二进制文件和拉取官方fabric-samples)。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么?(curl -sSL https://bi…...
Android---系统启动流程
目录 Android 系统启动流程 init 进程分析 init.rc 解析 Zygote 概叙 Zygote 触发过程 Zygote 启动过程 什么时Runtime? System Server 启动流程 Fork 函数 总结 面试题 Android 是 google 公司开发的一款基于 Linux 的开源操作系统。 Android 系统启动…...
【网络】http协议
🥁作者: 华丞臧. 📕专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…...
Thread::interrupted() 什么意思? 如何中断线程?
1、答: Thread::interrupted() 是一个静态方法,用于判断当前线程是否被中断,并清除中断标志位。 具体来说,当一个线程被中断后,它的中断状态将被设置为 true。如果在接下来的某个时间点内调用了该线程的 interrupted…...
Oracle OCP 19c 考试(1Z0-083)中关于Oracle不完全恢复的考点(文末附录像)
欢迎试看博主的专著《MySQL 8.0运维与优化》 下面是Oracle 19c OCP考试(1Z0-083)中关于Oracle不完全恢复的题目: A database is configured in ARCHIVELOG mode A full RMAN backup exists but no control file backup to trace has been taken A media…...
一起来学习配置Combo接口吧!
Combo接口是一个光电复用的逻辑接口,一个Combo接口对应设备面板上一个GE电接口和一个GE光接口。电接口与其对应的光接口是光电复用关系,两者不能同时工作(当激活其中一个接口时,另一个接口就自动处于禁用状态)…...
Realistic Vision V5.1虚拟摄影棚效果验证:专业摄影师盲测准确率87.3%
Realistic Vision V5.1虚拟摄影棚效果验证:专业摄影师盲测准确率87.3% 1. 项目概述 Realistic Vision V5.1虚拟摄影棚是基于当前最先进的写实风格生成模型开发的本地化摄影工具。经过深度优化后,该工具能够生成与专业单反相机拍摄效果相媲美的人像作品…...
CH340系列芯片选型指南与外围电路设计实战
1. CH340系列芯片选型指南 第一次接触CH340系列芯片时,我被它丰富的型号搞得眼花缭乱。作为国内最常用的USB转串口芯片之一,CH340系列凭借稳定的性能和亲民的价格,在嵌入式开发领域占据重要地位。但面对十几种不同型号,新手往往会…...
农机经销商必看:如何用2000-2020年县级数据精准定位区域市场?
农机经销商区域市场精准定位实战指南:基于2000-2020年县级数据分析 站在山东潍坊的田间地头,老张望着远处几台正在作业的拖拉机陷入了沉思。作为一家中型农机经销商的区域经理,他每年最头疼的就是如何准确预测各县区的农机需求——备货多了占…...
老旧设备的开源OCR解决方案:技术适配与性能优化指南
老旧设备的开源OCR解决方案:技术适配与性能优化指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub…...
二次开发入门:修改nanobot镜像适配我的OpenClaw需求
二次开发入门:修改nanobot镜像适配我的OpenClaw需求 1. 为什么需要定制nanobot镜像 第一次接触OpenClaw时,我直接使用了官方提供的标准镜像。但在实际使用中,发现几个痛点:默认的chainlit界面过于简单,无法展示我需要…...
SEO_2024年最新SEO策略与趋势深度解析(352 )
<h2>2024年最新SEO策略与趋势深度解析</h2> <p>在数字化时代,搜索引擎优化(SEO)依然是网站流量和品牌影响力的核心驱动力。2024年,随着互联网技术的不断进步,SEO策略和趋势也在不断演变。本文将详细…...
网页在线编辑 Office 实现|软航控件集成入门实战①
在 OA、ERP、管理系统开发中,网页在线编辑 Office、在线预览 Word/Excel/PPT/PDF是高频刚需。自己从零开发兼容性差、周期长,集成成熟控件是最快、最稳的方案。本文以软航 Office 文档控件为例,从零到一教你完成 Windows 端集成,新…...
新版药典解读:生物制品生产用动物细胞基质的质量控制修订重点
2025年版《中国药典》已正式实施2个多月,其对生物制品生产用动物细胞基质的质量控制要求进行了重要修订。本次修订对生物制品生产企业和检测机构的影响路径和深度虽有差异,但都指向一个核心转变:从“遵循规定”到“证明科学性”。接下来&…...
从HBuilder到npm:UniApp项目迁移与打包实战指南
1. 为什么需要从HBuilder迁移到npm? 很多UniApp开发者最初都是通过HBuilder这个集成开发环境入门,毕竟它提供了开箱即用的UniApp开发体验。但随着项目规模扩大,团队协作需求增加,或者需要更灵活的构建配置时,基于npm的…...
PowerShell效率提升秘籍:10个必备插件让你的终端飞起来
PowerShell效率革命:10款生产力插件深度评测与实战指南 对于每天与终端打交道的开发者来说,PowerShell的默认功能往往难以满足高效开发的需求。本文将深入剖析10款经过实战检验的效率工具,从智能补全到目录导航,从文件操作到命令解…...
