0
点赞
收藏
分享

微信扫一扫

HiveSql一天一个小技巧:一种利用最新数据补全稀疏表格的方法

安七月读书 2022-04-13 阅读 19

目录

0 需求

1 数据准备

2 问题分析

3 小结


0 需求

表名:t
表字段及内容:
date_id         a           b           c
2014           AB         12          bc
2015                         23
2016                                      d
2017          BC
问题:如何使用最新数据补全表格
输出结果如下所示:
date_id         a             b         c
2014            AB         12         bc
2015            AB         23         bc
2016           AB          23         d
2017           BC          23         d

应用场景:补全稀疏表格,获取用户点击事件时所对应的当前页面。

1 数据准备

create table t as
select '2014' as date_id,'AB' as a,'12' as b,'bc' as c
UNION ALL
select '2015' as date_id,null as a,'23' as b,null as c
UNION ALL
select '2016' as date_id,null as a,null as b,'d' as c
UNION ALL
select '2017' as date_id,'BC' as a,null as b,null as c

2 问题分析

该问题的本质还是利用随时间变化区分可变和不可变数据的技巧。

SQL如下:

结果如下:

+----------+-----+-----+-----+
| date_id  |  a  |  b  |  c  |
+----------+-----+-----+-----+
| 2014     | AB  | 12  | bc  |
| 2015     | AB  | 23  | bc  |
| 2016     | AB  | 23  | d   |
| 2017     | BC  | 23  | d   |
+----------+-----+-----+-----+

3 小结

举报

相关推荐

0 条评论