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

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

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

相关文章

React16源码: React中处理LegacyContext相关的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…

leetcode 27.移除元素(python版)

需求 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度…

河南郑州:“车辆医生”——检修列车 护航春运

(通讯员:刘雨 李子豪)1月26日,铁路系统的“春运大考”缓缓拉开帷幕。在中国铁路郑州局集团有限公司郑州车辆段郑州客整所内,一列列精检细修的客车整装待发。繁忙的客整所内,穿着工装、拿着检车锤的客车检车…

亚马逊、速卖通、虾皮等平台测评自养号,虚拟信用卡的使用

在上一篇文章中,我提到了一个完善的自养号测评系统需要具备的几个要求。在这篇文章中,我将重点探讨支付方式虚拟信用卡的问题,以及如何避免信用卡关联。 首先,需要了解信用卡关联风控机制的存在意义。在跨境电商亚马逊平台上&…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷9

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

长度最小的子数组[中等]

一、题目 给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的连续子数组[numsl, numsl1, ..., numsr-1, numsr],并返回其长度。如果不存在符合条件的子数组,返回0。 示例 1: 输入&#xff…

C 练习实例51-学习使用按位与

按位与、或、异或 1.按位与 & 0&00 0&10 1&00 1&11 2.按位或 | 0|00 0|11 1|01 1|11 3.按位异或 ^ 0^00 0^11 1^01 1^10 (只要学过离散数学懂的都懂) (都是双目运…

Qt QScrollArea 不显示滚动条 不滚动

使用QScrollArea时,发现添加的控件超出QScrollArea 并没有显示,且没有滚动条效果 原因是 scrollArea指的是scrollArea控件本身的大小,肉眼能看到的外形尺寸。 scrollAreaWidgetContents指的是scrollArea控件内部的显示区域,里面可…

如何优雅的完成权限认证?-- 瞎扯文

文章目录 前言常规解决方案Linux系统文件的权限编码压缩Python版本Java版本总结前言 以前挺喜欢计算机的,出来工作后发现,现在更喜欢了嘿嘿~当然也是沉寂了一个月之久。终于又来冒泡了,实属不易啊。消失了这么久的时间,干嘛去了呢?很简单实习去了,当然不是某互联网公司哈…

05 SB3之Spring Initializr+运行方式+自动配置原理(TBD)

1. 使用IDEA内置Spring Initializr 生成SB项目 最上方Server URL可以选择借助哪个平台生成, 可选阿里云 作为对比 , 官方可选版本最旧为3.1.18 ; 阿里云可选最新版本为3.0.2 本次选择3.1.8版本, 并且添加Spring Web依赖(包括RESTful / Spring MVC/)和Lombok依赖 生成后端项目…

Android Studio项目——TCP客户端

目录 一、TCP客户端UI 1、UI展示 2、xml代码 二、TCP客户端数据发送 三、TCP客户端数据接收 一、TCP客户端UI 1、UI展示 2、xml代码 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.…

HiveSQL题——窗口函数(lag/lead)

目录 一、窗口函数的知识点 1.1 窗户函数的定义 1.2 窗户函数的语法 1.3 窗口函数分类 1.4 前后函数:lag/lead 二、实际案例 2.1 股票的波峰波谷 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2 前后列转换&#xff08;面试题&#xff09; 0 问题描述 1 数据准备 …