目录
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   |
+----------+-----+-----+-----+ 










