大数据-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

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查