复制下个月的最新记录,直到有变化

问题描述

我每个月都在尝试查询 ID 及其类型,但我只有两个表,其中一个包含所有 ID,另一个包含类型更改事务。当我加入他们时,它给了我几个月没有变化的空值。

SELECT a.month_date,a.id,b.type
FROM id_table a
LEFT JOIN type_changes_table b
ON a.id = b.id AND a.month_date = b.month_date

有没有办法使用 Presto sql/amazon athena 将最新值复制到下个月直到没有变化(例如下图中的预期列)。

enter image description here

解决方法

一种方法使用 last_value(ignore nulls)

SELECT i.month_date,i.id,c.type,LAST_VALUE(c.type IGNORE NULLS) OVER (PARTITION BY i.id ORDER BY i.month_date) as imputed_type
FROM id_table i LEFT JOIN
     type_changes_table c
     ON i.id = c.id AND i.month_date = c.month_date;