Hive某字段空值用同组该字段非空值填充

背景: 工作中遇到这样一个业务场景:系统中记录订单提报和订单审核通过两个时间点某业务状态,开发做标记时一个订单产生了两条记录,即提报时记录状态1字段,状态2字段为空;审核通过时产生新纪录记录状态2字段,状态1字段为空。分析其实想要的是一个订单对应一条记录:订单对应的状态1字段和状态2字段。
思路: 使用last_value窗口函数可以实现获取某字段当前行的同组中非空值的最后一个;使用COALESCE函数判断字段是否为空,为空则使用last_value计算出的结果,否则使用字段本身值。最后使用分组方法保留每组一条记录。

sql 复制代码
select 
	order_id,
	status_submit,
	status_audit
from(
select
	order_id
	,coalesce(status_submit, last_value(status_submit) over (partition by order_id order by status_submitrows between unbounded preceding and unbounded following)) as status_submit
	,coalesce(status_audit, last_value(status_audit) over (partition by order_id order by status_audit rows between unbounded preceding and unbounded following)) as status_audit
from
	dbname.tableName
)t
group by order_id,status_submit,status_audit
相关推荐
得物技术4 小时前
从“人治”到“机治”:得物离线数仓发布流水线质量门禁实践
大数据·数据仓库
小邓睡不饱耶4 小时前
Sqoop 实战:数据迁移核心案例、优化技巧与企业级落地
hive·hadoop·sqoop
沃达德软件7 小时前
重点人员动态管控系统解析
数据仓库·人工智能·hive·hadoop·redis·hbase
xianyinsuifeng8 小时前
RAG + Code Analysis 的标准路线
数据仓库·自动化·云计算·原型模式·aws
ruxshui9 小时前
个人笔记: 星环Inceptor/hive普通分区表与范围分区表核心技术总结
hive·hadoop·笔记
2501_9272835811 小时前
仓库升级进行时:当传统仓储遇到“四向穿梭车”
数据仓库·人工智能·自动化·wms·制造
Gain_chance12 小时前
26-学习笔记尚硅谷数仓搭建-DIM层特殊的维度表——用户维度表的建表、分析及DIM层数据装载脚本
数据仓库·hive·笔记·学习
TTBIGDATA1 天前
【Hue 】Hue 访问 YARN 返回 403 权限问题
大数据·hadoop·ambari·hdp·国产化·hue·bigtop
TTBIGDATA1 天前
【Knox】Knox 转发访问 Trino Web UI 返回 406 错误的原因与处理
大数据·运维·前端·hadoop·ui·ambari·hdp
Gain_chance2 天前
25-学习笔记尚硅谷数仓搭建-DIM层其余(优惠卷、活动、地区、营销坑位、营销渠道、日期)维度表建表语句、简单分析
数据仓库·笔记·学习