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

hive开窗函数

hive开窗函数

窗口函数

数据准备

1 jx 20
2 zx 24
3 yx 18
4 wz 10
5 yy 34
6 wy 25
create table t (> id int,> name string,> age int> )> row format delimited fields terminated by ' '; 
load data inpath '/data/data.txt' into table t;

在这里插入图片描述

ROW_NUMBER

ROW_NUMBER 从1开始,生成分组内记录的数据

select id, name, age, row_number() over(order by age desc) num from t; 

结果展示

id	name	age	num
5	yy	34	1
6	wy	25	2
2	zx	24	3
1	jx	20	4
3	yx	18	5
4	wz	10	6

RANK 和 DENSE_RANK

RANK生成数据在分组中的排名,排名相等的会在名次中留下空位

DENSE_RANK 生成数据在分组中的排名,排名相等的不会留下空位

select 
id, name, age,
rank() over(order by age desc) num1,
dense_rank() over(order by age desc) num2,
row_number() over(order by age desc) num3
from t;

结果展示(中途插入数据忘记覆盖原数据了,但是不影响展示结果)

id	name	age	num1	num2	num3
5	yy	34	1	1	1
5	yy	34	1	1	2
6	wy	25	3	2	3
6	wy	25	3	2	4
2	zx	24	5	3	5
2	zx	24	5	3	6
1	jx	20	7	4	7
7	hn	20	7	4	8
1	jx	20	7	4	9
3	yx	18	10	5	10
3	yx	18	10	5	11
4	wz	10	12	6	12
4	wz	10	12	6	13

分析窗口函数

SUM

结果和order by相关,默认为升序

 select id,name,age,sum(age)over(order by age) sum from t;

结果展示

id	name	age	sum
4	wz	10	10
3	yx	18	28
1	jx	20	68
7	hn	20	68
2	zx	24	92
6	wy	25	117
5	yy	34	151

如果没有orger by 则默认将分区内所有的数据进行sum

select id,name,age,sum(age)over() sum from t;

结果展示

id	name	age	sum
1	jx	20	151
2	zx	24	151
3	yx	18	151
4	wz	10	151
5	yy	34	151
6	wy	25	151
7	hn	20	151

如果不指定rows between,默认从起点到当前行

rows between的含义

  • preceding : 往前
  • following : 往后
  • current row : 当前行
  • unbounded : 起点
  • unbounded preceding : 默认从前面的起点
  • unbounded following : 默认到后面的终点

从起点到终点进行sum

select id, name, age, sum(age)over(order by age rows between unbounded preceding and current row) sum from t;

结果展示

id	name	age	sum
4	wz	10	10
3	yx	18	28
1	jx	20	48
7	hn	20	68
2	zx	24	92
6	wy	25	117
5	yy	34	151

对前三行和本行和下一行进行sum

select id, name, age, sum(age)over(order by age rows between 3 preceding and 1 following) sum from t;

结果展示

id	name	age	sum
4	wz	10	28
3	yx	18	48
1	jx	20	68
7	hn	20	92
2	zx	24	107
6	wy	25	123
5	yy	34	103

对当前行到终点进行sum

select id, name, age, sum(age)over(order by age rows between current row and unbounded following) sum from t;

结果展示

id	name	age	sum
4	wz	10	151
3	yx	18	141
1	jx	20	123
7	hn	20	103
2	zx	24	83
6	wy	25	59
5	yy	34	34

其余还有avg、min、max和sum的用法一样

这里只再展示一个avg

 select id,name,age,avg(age)over(order by age) sum from t;

结果展示

id	name	age	sum
4	wz	10	10.0
3	yx	18	14.0
1	jx	20	17.0
7	hn	20	17.0
2	zx	24	18.4
6	wy	25	19.5
5	yy	34	21.571428571428573

相关文章:

hive开窗函数

hive开窗函数 窗口函数 数据准备 1 jx 20 2 zx 24 3 yx 18 4 wz 10 5 yy 34 6 wy 25create table t (> id int,> name string,> age int> )> row format delimited fields terminated by ; load data inpath /data/data.txt into table t;ROW_NUMBER ROW_N…...

安全多方计算系列笔记1——前世今生

这一系列笔记参考了绿盟科技研究通讯的安全多方计算文章,及其他。 首先看定义:在不泄露参与方原始输入数据的前提下,允许分布式参与方合作计算任意函数,输出准确的计算结果。 起源 安全多方计算问题及解首先由姚期智&#xff08…...

16- 梯度提升分类树GBDT (梯度下降优化) (算法)

梯度提升算法 from sklearn.ensemble import GradientBoostingClassifier clf GradientBoostingClassifier(subsample0.8,learning_rate 0.005) clf.fit(X_train,y_train) 1、交叉熵 1.1、信息熵 构建好一颗树,数据变的有顺序了(构建前&#xff0c…...

SpringCloud+Nacos+Gateway

SpringCloudNacosGatewaySpringBoot整合GatewayNacos一. 环境准备1. 版本环境2. 服务环境二. 实战1.创建用户服务2.创建订单服务3.创建网关服务4.测试三. 避坑指南问题1--503问题问题2--网关服务启动报错SpringBoot整合GatewayNacos 本篇文章只演示通过gateway网关服务访问其他…...

高通开发系列 - linux kernel内核升级msm-3.18升至msm-4.9(2)

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 返回高通开发系列 - 总目录 前面我们升级了msm-4.9内核系统正常启动了,文件系统也正常工作,但那是使用了老基线的文件系统,其yocto…...

Spring依赖注入与反转控制到底是个啥?

目录 1. 引言 2. 管中窥豹 3.1 Spring 依赖注入 3.2 Bean 的依赖注入方式有两种 4. 总结 1. 引言 此文目的是用通俗易懂的语言讲清楚什么是依赖注入与反转控制,在看了大量的博客文章后归纳总结,便于后续巩固!我相信,大多数…...

Linux Shell脚本讲解

目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…...

Linux:用户空间非法指针coredump简析

1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 背景 本文分析基于 ARM32 架构,Linux-4.14 内核代码。 3. 问题分析 3.1 测试范例 void main(void) {*(int *)0 8; }运行程序会 …...

带你玩转Jetson之Deepstream简明教程(四)DeepstreamApp如何使用以及用于工程验证。

1.DeepstreamApp是什么? 如果你安装完毕deepstream整体框架,会在你的系统执行目录内有可执行文件,文件名字是deepstream-app。这是一个可执行脚本文件,通过deepstream框架中的代码在安装的时候编译后install到系统根目录内。 此脚…...

快速搭建个人在线书库,随时随地畅享阅读!

前边我们利用NAS部署了个人的导航页、小说站、云笔记,今天,我们再看看怎么部署一个个人的在线书库。 相信很多朋友都在自己的电脑中收藏了大量的PDF、MOBI等格式的电子书籍,但是一旦换了一台设备,要么是无法翻阅,要么…...

电子纸墨水屏的现实应用场景

电子纸挺好个东西,大家都把注意力集中在商超场景 其实还有更多有趣的场景方案可用,价值也不小,比如: 一、仓库场景 通过亮灯拣选,提高仓库作业效率 二、仓库循环使用标签 做NFC类发卡式应用,替代传统纸…...

常量const、引用、指针的大杂烩

文章目录1 普通引用1.1 对普通值的普通引用1.2 对常量值的普通引用1.3 对普通指针的普通引用1.4 对常量指针的普通引用1.5 对指针常量的普通引用1.6 对指向常量的指针常量的普通引用2 常量引用2.1 对普通值的常量引用2.2 对常量值的常量引用2.3 对普通指针的常量引用2.4 对常量…...

宝塔搭建实战php开源likeadmin通用管理移动端uniapp源码(四)

大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享了pc端的部署方式,今天来给大家分享uniapp端在本地搭建,与打包发布到宝塔的方法。感兴趣的朋友可以自行下载学习。 技术架构 vscode node16 vue3 uniapp vite types…...

Hive的分区表与分桶表内部表外部表

文章目录1 Hive分区表1.1 Hive分区表的概念?1.1.1 分区表注意事项1.2 分区表物理存储结构1.3 分区表使用场景1.4 静态分区表是什么?1.4.1 静态分区表案例1.4.2 分区表练习一1.4.3 分区操作1.5 动态分区表是什么?1.5.1 动态态分区表案例&#…...

和数集团打造《神念无界:源起山海》,诠释链游领域创新与责任

首先,根据网上资料显示,一部《传奇》,二十年热血依旧。 《传奇》所缔造的成绩,承载的是多少人的青春回忆,《传奇》无疑已经在游戏史上写下了浓墨重彩的一笔。 相比《传奇》及背后的研发运营公司娱美德名声大噪&#x…...

小白入门模拟IC设计,如何快速学习?

众所周知,模拟电路很难学。以最普遍的晶体管来说,我们分析它的时候必须首先分析直流偏置,其次在分析交流输出电压。可以说,确定工作点就是一项相当麻烦的工作(实际中来说),晶体管的参数多、参数…...

51单片机——中断系统之外部中断实验,小白讲解,相互学习

中断介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。 为了更容易的理解中断概念&…...

如何设计一个秒杀系统

秒杀系统要如何设计? 前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定…...

厄瓜多尔公司注册方案

简介: 经济概况与商机 厄瓜多尔是世界上第74大国家,是南美西部国家,与哥伦比亚,秘鲁和太平洋接壤。厄瓜多尔地处世界中心,地理位置优越,地理位置优越-赤道线零纬度,使其成为通往太平洋的理想枢…...

安全渗透环境准备(工具下载)

数据来源 01 一些VM虚拟机的安装 攻击机kali: kali官网 渗透测试工具Kali Linux安装与使用 kali汉化 虚拟机网络建议设置成NAT模式,桥接有时不稳定。 靶机OWASP_Broken_Web_Apps: 迅雷下载 网盘下载 安装教程 开机之后需要登录&am…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

条件运算符

C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...