大数据-Hive练习-环比增长率、同比增长率、复合增长率

2023-12-27 06:28

本文主要是介绍大数据-Hive练习-环比增长率、同比增长率、复合增长率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

🥙12.1 环比增长率

1. 概述

2. 公式

3. 示例

4.练习-需求:计算各类商品的月环比增长率

🥙12.2 同比增长率

1. 概述

2. 公式

3. 示例

4. 练习-需求:计算各类商品的月同比增长率

🥙12.3 复合增长率

1. 概述

2. 公式

3. 示例

 4. 练习-需求:计算各类商品的月同比增长率


练习数据表

-- 创建销量表sales_monthly
-- product表示产品名称,ym表示年月,amount表示销售金额(元)
CREATE TABLE sales_monthly(product string,ym string,amount decimal(10, 2))
row format delimited fields terminated by ",";-- 生成测试数据
load data local inpath '/opt/testDemo/sales.txt' into table sales_monthly;

sales.txt

苹果,201801,10159.00
苹果,201802,10211.00
苹果,201803,10247.00
苹果,201804,10376.00
苹果,201805,10400.00
苹果,201806,10565.00
苹果,201807,10613.00
苹果,201808,10696.00
苹果,201809,10751.00
苹果,201810,10842.00
苹果,201811,10900.00
苹果,201812,10972.00
苹果,201901,11155.00
苹果,201902,11202.00
苹果,201903,11260.00
苹果,201904,11341.00
苹果,201905,11459.00
苹果,201906,11560.00
香蕉,201801,10138.00
香蕉,201802,10194.00
香蕉,201803,10328.00
香蕉,201804,10322.00
香蕉,201805,10481.00
香蕉,201806,10502.00
香蕉,201807,10589.00
香蕉,201808,10681.00
香蕉,201809,10798.00
香蕉,201810,10829.00
香蕉,201811,10913.00
香蕉,201812,11056.00
香蕉,201901,11161.00
香蕉,201902,11173.00
香蕉,201903,11288.00
香蕉,201904,11408.00
香蕉,201905,11469.00
香蕉,201906,11528.00
桔子,201801,10154.00
桔子,201802,10183.00
桔子,201803,10245.00
桔子,201804,10325.00
桔子,201805,10465.00
桔子,201806,10505.00
桔子,201807,10578.00
桔子,201808,10680.00
桔子,201809,10788.00
桔子,201810,10838.00
桔子,201811,10942.00
桔子,201812,10988.00
桔子,201901,11099.00
桔子,201902,11181.00
桔子,201903,11302.00
桔子,201904,11327.00
桔子,201905,11423.00
桔子,201906,11524.00

🥙12.1 环比增长率

1. 概述

环比增长率是指两个相邻时段之间某种指标的增长率。通常来说,环比增长率是比较两个连续时间段内某项数据的增长量大小的百分比。

环比增长率反映了两个相邻时间段内某种经济指标的变化速度,被广泛用于企业、社会和国民经济等方面的经济分析中。

2. 公式

环比增长率的计算公式如下:

环比增长率 = (本期数值 - 上期数值)/ 上期数值 * 100%

其中:

  • 本期数值是指当前时间段内的指标数值;

  • 上期数值是指上一个时间段内的指标数值。

3. 示例

通过计算两者之间的差异,再以百分比的形式表示出来,就得到了环比增长率。

例如,如果某公司今年第一季度的销售额为 100 万人民币,第二季度的销售额为 120 万人民币,那么环比增长率可以按照以下步骤计算:

环比增长率 = (120 - 100) / 100 * 100% = 20%

这样就得到了该指标在本期相对于上期的增长率为 20%。

4.练习-需求:计算各类商品的月环比增长率

--需求说明:计算各类商品的月环比增长率;
select product as `产品`,ym as `年月`,(amount-lag(amount,1) over (partition by product order by ym))/lag(amount,1,amount) over (partition by product order by ym) *100 as `环比增长率%`
from sales_monthly;

🥙12.2 同比增长率

1. 概述

同比增长率是指与去年同期相比的增长率。它用于比较同一时间段内的两个不同年份的数据变化情况,判断增长趋势和比较不同年度的表现。常用于分析经济、市场等领域的年度变化趋势。

2. 公式

同比增长率的计算公式如下:

同比增长率 = (本期数值 - 去年同期数值)/ 去年同期数值 * 100%

其中:

  • 本期数值是指当前时间段内的指标数值;

  • 去年同期数值是指上一个年度同一时间段内的指标数值。

通过计算两者之间的差异,再以百分比的形式表示出来,就得到了同比增长率。

3. 示例

举例来说,如果某项指标在今年第一季度120,而去年同期第一季度100,那么同比增长率可以按照以下步骤计算:

同比增长率 = (120 - 100) / 100 * 100% = 20%

这样就得到了该指标在今年第一季度相对于去年同期的增长率为 20%

4. 练习-需求:计算各类商品的月同比增长率

select s1.`产品`,s1.`今年日期`,s1.`本年销量`,s2.amount as `去年销量`,(s1.`本年销量`-s2.amount)/s2.amount *100 as `同比增长率(%)`
from (
select product as `产品`,ym as `今年日期`,amount as `本年销量`,concat(cast(substr(ym,1,4) as int)-1,substr(ym,5)) as last_year
from sales_monthly
order by product,ym) as s1
left join sales_monthly as s2
on s1.last_year=s2.ym and s1.`产品`=s2.product;

🥙12.3 复合增长率

1. 概述

复合增长率是指在一段连续的时间内,某项指标每个月或年平均增长的复合增长率。它用于衡量某指标在一段时间内(月均或年均)的整体增长速度。

2. 公式

复合增长率的计算公式如下:

复合增长率 = (最终值 / 初始值)^( 1 / n) - 1

其中:

  • 最终值是指期末的数值;

  • 初始值是指起始的数值;

  • n 时间段数量是指经过 n 个时间段的增长所到达的值。

在hive中通过power((最终值 / 初始值), 1 / n)-1来进行计算

3. 示例

举例来说,假设某项指标在起始时刻(一月份)为 100,经过 6 个月(到达七月份)的增长,最终值为 200,则可以按照以下步骤计算月均复合增长率:

月均复合增长率 = ( (200 / 100)^(1 / (7-1)) -1) * 100%

这样就得到了某指标经过 6 个月的整体增长率(复合增长率) 为12.25%。

select (power(200/100,1/6)-1)*100 as `增长率`;

结果:

在计算月均或年均复合增长率时,需要使用连续的起始值和结束值来进行计算。假设有 n 个连续的月份数据,那么起始值到结束值的时间跨度为 n-1 个月,只计算后续的增长情况。

 4. 练习-需求:计算各类商品的月同比增长率

--1. 先求出每个产品的第一个月的销量,并对这个排序做个计数
select product,ym,amount,first_value(amount) over (partition by product order by amount) as first_value,row_number() over (partition by product order by amount) as num
from sales_monthly;--2.num-1即为公式中的时间段,要考虑num-1=0的情况
select product as `产品`,ym as `年月`,amount as `销量`,first_value as `起始销量`,(power(1.0*amount/first_value,1.0/NULLIF(num-1,0))-1)*100 as `复合增长率`
from(
select product,ym,amount,first_value(amount) over (partition by product order by amount) as first_value,row_number() over (partition by product order by amount) as num
from sales_monthly);

结果:

这篇关于大数据-Hive练习-环比增长率、同比增长率、复合增长率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Nacos日志与Raft的数据清理指南

《Nacos日志与Raft的数据清理指南》随着运行时间的增长,Nacos的日志文件(logs/)和Raft持久化数据(data/protocol/raft/)可能会占用大量磁盘空间,影响系统稳定性,本... 目录引言1. Nacos 日志文件(logs/ 目录)清理1.1 日志文件的作用1.2 是否可以删除