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
相关推荐
TTBIGDATA1 小时前
【Atlas】Atlas Hook 消费 Kafka 报错:GroupAuthorizationException
hadoop·分布式·kafka·ambari·hdp·linq·ranger
零一科技4 小时前
centos7安装hadoop3(上)
hadoop
Francek Chen4 小时前
【大数据基础】实验1:熟悉常用的Linux操作和Hadoop操作
大数据·linux·hadoop·hdfs
零一科技6 小时前
centos7安装hadoop3(下)
hadoop
佐伊236 小时前
SQL优化剧场:当Hive/MaxCompute遇上数据倾斜的十二种剧情
hive·sql优化·maxcompute·数据倾斜
B站计算机毕业设计超人6 小时前
计算机毕业设计hadoop+spark+hive共享单车预测系统 共享单车数据可视化分析 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·python·深度学习·spark·毕业设计·课程设计
B站计算机毕业设计超人6 小时前
计算机毕业设计Python+Spark+Hadoop+Hive微博舆情分析 微博情感分析可视化 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·爬虫·python·spark·cnn·课程设计
Amber勇闯数分6 小时前
【Hive】基于物品协同过滤 [ ItemCF ] 推荐课程-余弦相似度计算
大数据·数据仓库·hive·hadoop·矩阵
努力有什么不好6 小时前
SparkSQL如何查询外部hive数据
数据仓库·hive·hadoop
yumgpkpm6 小时前
华为昇腾300T A2训练、微调Qwen过程,带保姆式命令,麒麟操作系统+鲲鹏CPU
hive·hadoop·华为·flink·spark·kafka·hbase