Sql进阶技巧:如何分析商品入库采购成本数据缺失问题?| 近距离有效的数据缺失值填充问题

本文通过一个京东面试题,探讨如何在Hive SQL中处理数据缺失,尤其是商品入库成本的计算。面对成本为NULL的情况,提出了通过最近一次有效成本和紧接着一次有效成本来填充,并在存在多个NULL时使用分组策略,利用`sum() over(order by)`函数进行解决。文章详细阐述了解决方案的步骤和逻辑,提供了一种处理复杂SQL场景的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

0 场景描述【京东面试题】

 1 数据准备

2 数据分析

3 优雅解法

4 小结


0 场景描述【京东面试题】

需求描述:

有一张入库成本表,一个商品每次入库就会产生一条数据,里面包含商品id,入库时间,以及入库采购的成本.但由于某些某些原因,导致表中某些数据的成本是有丢失的.现在的逻辑是,当成本丢失时,有两种取成本的方式,现在需要把两种成本都取出来,最后取2次成本的平均值作为本次入库的成本。取数逻辑如下:

  • 1.取同一个商品最近一次入库的有效成本(即存在成本时就为有效成本,无效成本为null)
  • 2.取同一个商品紧接着一次入库的有效成本
  • 3 上述中结果依然有无效值时,记为0

 效果如下:

 1 数据准备

create table cost as (

       select stack(
	   
	                14,
			        '
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值