Hive(15)中使用sum() over()实现累积求和和滑动求和
目的:
三个常用的排序函数row_number(),rank()和dense_rank()。这三个函数需要配合开窗函数over()来实现排序功能。但over()的用法远不止于此,本文咱们来介绍如何实现累计求和和滑动求和。
1、数据介绍
三列数据,分别是员工的姓名、月份和销售额

功能:对每个员工的销售业绩的累积求和以及滑动求和(每个月计算其最近三个月的总销售业绩)
2、累积求和
语法:
sum(需要求和的列) over(partition by 分组列 order by 排序列 asc/desc)
代码:
select*,sum(cnt) over(partition by name order by month) as total_cnt
fromdefault.salerinfo
结果:

3、滑动求和
累积求和还是比较简单的,滑动求和就需要用到over中的另一用法了:、
语法:
sum(需要求和的列) over(partition by 分组列 order by 排序列 range between ... and ...)
这里需要在over函数中使用range between and指定窗口的大小,向前使用preceding,向后使用following。如2 preceding and 1 following指定的窗口包括当前行、当前行前面两行以及当前行后面一行,总共4行。
注:下面代码中字段 month 必须是整数
1. 如在本例中,我们想要求每个月对应的最近三个月的业绩之和(包含本月在内),代码如下:
select*,sum(cnt) over(partition by name order by month range between 2 preceding and 0 following) as total_cnt
fromdefault.salerinfo
2. 如果不想写0 following,另一种更为合适的写法是使用current row:
select*,sum(cnt) over(partition by name order by month range between 2 preceding and current row) as total_cnt
fromdefault.salerinfo
1和2结果如下:

码字不易,喜欢请点赞,谢谢!!!😊
参考:
https://blog.csdn.net/abcdefg90876/article/details/105190396/
http://www.taodudu.cc/news/show-537160.html?action=onClick
相关文章:
Hive(15)中使用sum() over()实现累积求和和滑动求和
目的: 三个常用的排序函数row_number(),rank()和dense_rank()。这三个函数需要配合开窗函数over()来实现排序功能。但over()的用法远不止于此,本文咱们来介绍如何实现累计求和和滑动求和。 1、数据介绍 三列数据,分别是员工的姓名、月份和…...
2024年Java搭建面试题
2024年Java实战面试题(北京)_java 5 年 面试-CSDN博客 1、搭建docker容器 # 安装依赖的环境 yum -y install yum-utils device-mapper-persistent-data lvm2 # 设置镜像源为阿里 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/lin…...
二维数组的学习
前言 在前面我们学习了一维数组,但是有的问题需要用二位数组来解决。 二维数组常称为矩阵,把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。 一、二维数组的定义 二维数组定义的一般格式: 数据类型 数…...
Java集合(List集合)
什么是集合? 什么是集合?集合就是“由若干个确定的元素所构成的整体”,在程序中,一般代表保存 若干个元素(数据)的某种容器类。 在Java中,如果一个Java对象可以在内部持有(保存&…...
7、Json文件的操作总结【robot framework】
1、JSONLibrary简介 Robot Framework 是一种通用的自动化测试框架,它支持使用关键字驱动的测试,并且易于学习和使用。Robot Framework 提供了丰富的标准库,而 JSONLibrary 就是其中之一,用于处理 JSON 数据。 安装 JSONLibrary 在…...
python 循环解压 解压多重压缩包
在实际数据中,经常会有压缩包套压缩包的情况,并且有可能出现“zip”压缩包下面套“tar”的可能。 你可以运行后面的代码,来完成自动解压。代码会不断检查folder_a_path 文件夹下是否还有压缩包。目前支持zip、rar、tar、7z等四种格式的压缩文…...
基于C#制作一个连连看小游戏
基于C#制作一个连连看小游戏,实现:难易度选择、关卡选择、倒计时进度条、得分计算、音效播放等功能。 目录 引言游戏规则开发环境准备游戏界面设计游戏逻辑实现图片加载与显示鼠标事件处理游戏优化与扩展添加关卡与难度选择说明</...
Android-System 根据包名查找已安装应用apk方法
1、根据包名查找应用的安装路径 dumpsys package packageName | grep Path 例如: kona:/ # dumpsys package com.yw_pt.oshnoh | grep PathcodePath/data/app/com.yw_pt.oshnoh-N4rPqGh58weRjMpA1q3evwresourcePath/data/app/com.yw_pt.oshnoh-N4rPqGh58weRjMpA1q3…...
洛谷-P4124题-手机号码-Java
题目 题目链接: https://www.luogu.com.cn/problem/P4124 分析 给定两个长度为11位的数字,代表两个区间 [L,R] 需要编写程序来计算出,这两个区间内满足要求的数字个数。这样的题一般来说就是数位dp题。首先我们可以根据容斥原理 [0,R]中满…...
仅使用 Python 创建的 Web 应用程序(前端版本)第08章_商品详细
在本章中,我们将实现一个产品详细信息页面。 完成后的图像如下。 Model、MockDB、Service都是在产品列表页实现的,所以创建步骤如下。 No分类内容1Page定义PageId并创建继承自BasePage的页面类2Application将页面 ID 和页面类对添加到 MultiPageApp 的页面中Page:定义PageI…...
Stable Diffusion 长视频真人动画风格互转
Stable Diffusion Temporal-Kit和EbSynth 从娱乐到商用 1. Temporal Kit 和 EbSynth1.1 提取关键帧1.2 关键帧风格迁移1.3 生成序列帧2. 真人转卡通3. 卡通转真人4. 编辑技巧5. ControlNet + TemporalNet + 达芬奇Fusion6. Rerender A Video7. DiffSynth-Studio基于SD的风格化…...
精要图示:园区金融数字化服务蓝图,以园区为支点推动信贷业务增长
作为企业集聚地,园区已然成为银行业夯实客群基础的重要切口,各大行陆续围绕园区场景创新金融产品,以期抢跑园区金融新赛道、把握新增量。 启信慧眼首推一站式【园区金融】数字化服务方案,该方案同时支持启信天元私有化部署&#x…...
2024 中国(南京)国际口腔设备器械博览会
2024 中国(南京)国际口腔设备器械博览会 时间:2024 年 7 月 18-20 日 地点:南京国际展览中心 WeChat_20230512134641 主办单位: 南京民营口腔医疗协会 北京铭曼国际展览有限公司 承办单位: 北京铭曼国际展览有限公司 展会介绍 随…...
【MyBatis】快速入门MyBatis(保姆式教学),你值得一看
文章目录 📄前言一. Mybatis简介✈️1. 什么是Mybatis🚀2. 为什么使用Mybatis 二. Mybatis快速入门🍆1. mybatis使用前准备1.1 创建springboot项目并引入相关依赖1.2 在 application.ym中进行数据源的配置1.3 创建数据表,准备表数…...
git pull代码时候报错:error: cannot open .git/FETCH_HEAD: Permission denied
git pull代码时候报错: error: cannot open .git/FETCH_HEAD: Permission denied 原因: 当前登录用户没有修改目录的权限。 解决办法: 修改当前目录权限 1. whoami 查看当前登录用户 xxx$ whoami 假设上边查询登陆账号为:csd…...
shell - 正则表达式和grep命令和sed命令
一.正则表达式概述 1.正则表达式定义 1.1 定义 使用字符串描述、匹配一系列符合某个规则的字符串 1.2 了解 普通字符: 大小写字母、数字、标点符号及一些其它符号元字符: 在正则表达式中具有特殊意义的专用字符 1.3 层次分类 基础正则表达式扩展正…...
datawhale 大模型学习 第十二章-大模型环境影响
环境影响概述 气候变化:大语言模型(LLM)的训练和运行需要大量计算资源,导致显著的能源消耗和温室气体排放,加剧气候变化。能源消耗:训练LLM的计算过程消耗大量电力,间接增加了化石燃料的使用&a…...
Qt WebEngine模块使用(开发环境安装和程序开发)
一、Qt WebEngine Qt WebEngine_hitzsf的博客-CSDN博客 Qt WebEngine模块提供了一个Web浏览器引擎,可以轻松地将万维网上的内容嵌入到没有本机Web引擎的平台上的Qt应用程序中。Qt WebEngine提供了用于渲染HTML,XHTML和SVG文档的C 类和QML类型ÿ…...
网络体系结构 和网络原理之UDP和TCP
目录 网络分层 一. 应用层 http协议 二. 传输层 1. 介绍 2.UDP协议 (1)组成 (2)细节 3.TCP协议 (1)特性如下链接: (2)组成 (3)特点 三. 网络层 四. 数据链路层 1.介绍 2.以太网协议 3.mac地址和ip地址 五. 物理层 DNS 网络分层 一. 应用层 应用程序 现成的…...
将Android APP安装到sm8550 HDK的NVMe SSD
APP存储路径 在Android中,App在运行过程中主要访问的数据路径通常包括以下几个方面: 内部存储(Internal Storage):App会访问其私有的内部存储空间,这个空间通常位于: /data/data/<package…...
通义千问1.5-1.8B-Chat-GPTQ-Int4入门:C语言基础概念问答助手
通义千问1.5-1.8B-Chat-GPTQ-Int4入门:C语言基础概念问答助手 刚学C语言那会儿,指针、结构体这些概念真是让人头大。书上讲得抽象,网上资料又太零散,要是当时有个能随时提问、还能给出代码例子的“随身老师”就好了。现在&#x…...
从零开始:在VS2019中用C++/CLI实现WinForm拖拽式界面设计
从零开始:在VS2019中用C/CLI实现WinForm拖拽式界面设计 当开发者需要在C项目中快速构建图形用户界面时,WinForm提供了一种比传统Win32 API更高效的解决方案。本文将详细介绍如何在Visual Studio 2019环境下,利用C/CLI技术实现类似C#的拖拽式W…...
激光测距技术:从原理到选型的全方位指南
1. 激光测距技术的基本原理 激光测距技术本质上是通过测量激光信号从发射到接收的时间或相位变化来计算距离。想象一下你在山谷里大喊一声,通过听到回声的时间差就能估算出对面山壁的距离,激光测距就是这个原理的"高科技版本"。只不过激光的速…...
山东大学软件学院项目实训-创新实训-医院自助服务系统(二)
时间:2026.3.27-4.5 工作内容:智能诊断书扫描功能开发(初步),SpringBoot 通义千问VL实现智能诊断书识别 - 医疗自助服务系统开发实践 一、模块开发背景 在本次创新项目实训中,我负责开发“智愈”医疗自助…...
FPGA图像处理核心:构建可配置的通用滑动窗口IP核
1. 为什么需要通用滑动窗口IP核 做FPGA图像处理的朋友应该都深有体会,每次新项目来了都要重新写滑动窗口模块,简直让人头大。我去年做过一个统计,在图像处理项目中,光是滑动窗口相关的代码就占了总开发时间的30%以上。这还只是写代…...
技术面试终极指南:10个反向面试技巧助你问对公司问题
技术面试终极指南:10个反向面试技巧助你问对公司问题 【免费下载链接】reverse-interview Questions to ask the company during your interview 项目地址: https://gitcode.com/gh_mirrors/re/reverse-interview 在技术面试中,反向面试ÿ…...
Linux文件系统探秘:当你删除一个文件时,inode位图究竟发生了什么变化?
Linux文件系统探秘:当你删除一个文件时,inode位图究竟发生了什么变化? 在Linux系统中,删除文件看似是一个简单的操作,但背后却隐藏着一系列精密的元数据操作。对于系统开发者和运维人员而言,理解这一过程不…...
鸿蒙与微信开发深度融合:技术适配、实操指南与生态展望
鸿蒙与微信开发深度融合:技术适配、实操指南与生态展望 随着鸿蒙系统(HarmonyOS NEXT)的全面普及,其分布式架构、原生生态的优势日益凸显,成为移动应用开发的新赛道。微信作为国民级应用,其鸿蒙版的适配与开…...
实现堆和用堆实现排序数组
什么是堆 就是完全二叉树 前h-1层都是满的 最后一层可以不满,但从左到右必须连续。 逻辑上是链 物理上是数组 首先,实现堆 一、定义一个结构体,用来存3个值 a就是的数组地址 size是有效元素的个数 capacity是总容量,size…...
白嫖DeepSeek、GLM、MiniMax、Kimi等大模型,每天 1亿 Token 免费领!
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 最近折腾 AI 编程的朋友估计挺多的。这玩意儿现在进化得确实有点吓人。就拿名气最大的 Claude Code 来说,它这个命令行工具直接把写代码变成了“在线聊天”。你只要嘴上说清…...
