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

查询计算每一天的累计销售金额以及与前一天相比的销售金额增长额

  • 请编写一个Hive SQL查询,对于每个店铺,计算每一天的累计销售金额以及与前一天相比的销售金额增长额(如果是第一天,则增长额为0)。结果表应包含shop_id,sale_date,sale_amount,cumulative_sale_amount和sale_amount_increase这几列
    建表语句
CREATE TABLE sales_data (
  shop_id STRING,
  sale_date STRING,
  sale_amount DOUBLE
)
STORED AS PARQUET;  -- 可以选择不同的存储格式,如 Parquet, ORC, etc.
INSERT INTO sales_data VALUES
  ('shop_1', '2023-01-01', 100.0),
  ('shop_1', '2023-01-02', 150.0),
  ('shop_1', '2023-01-03', 200.0),
  ('shop_2', '2023-01-01', 80.0),
  ('shop_2', '2023-01-02', 120.0),
  ('shop_2', '2023-01-03', 160.0);

代码

select 
shop_id,
sale_date,
sale_amount,
sum(sale_amount) over(partition by shop_id order by sale_date) as cumulative_sale_amount,
if(lag(sale_amount) over(partition by shop_id order by sale_amount) is null , 0,
   sale_amount - lag(sale_amount) over(partition by shop_id order by sale_amount)
) as sale_amount_increase
from sales_data

结果
在这里插入图片描述

相关文章:

  • 编译linux SDK
  • html网络安全工具源码 网络安全前端
  • 网络安全 逆向 apk 网络安全逆向分析
  • DeepSeek-学习与实践
  • 电容的温度系数分析
  • Qt中的MOC元对象系统内部原理介绍与开发应用
  • 【Git】初识Git 基础操作
  • DL/CV领域常见指标术语(FLOPS/mIoU/混淆矩阵/F1-measure)------一篇入门
  • C/C++流星雨
  • vue3 ref和reactive的区别
  • MOS管炸了,PWM“死区”时间得了解一下
  • 九联UNT403AS_晶晨S905L3S芯片_2+8G_安卓9.0_卡刷固件包
  • Python控制台信息记录全解析:从基础到生产级实践指南
  • 网络流量如何从公共互联网抵达Kubernetes容器 Pod?
  • 无法保存IP设置问题过程 - 心酸
  • PTA:使用指针方式求一个给定的m×n矩阵各行元素之和
  • VS2019+Mitk+cmake编译运行MitkWorkbench
  • Qt开发④Qt常用控件_上_QWdget属性+按钮类控件
  • el-button按钮的loading状态设置
  • android 定制mtp连接外设的设备名称
  • 西北大学副校长范代娣成陕西首富?系家庭财富,本人已从上市公司退出
  • 再获殊荣!IP SH跻身上海文化品牌全球传播力TOP 6
  • 商务部就开展打击战略矿产走私出口专项行动应询答记者问
  • 宁德时代港股募资预计最高至50亿美元:90%将投向匈牙利项目
  • 普京提议重启俄乌直接谈判后,特朗普表态了
  • 云南多地突查公职人员违规饮酒:公安局门口开展酒精吹气测试