如何从未确定的组中获取第一个值

How to get the first value from an undetermined group

任何人都可以帮我解决这个问题,我正在使用 Athena,并且我正在寻找一些解决方案,Athena 不支持变量,那么我该如何填充 sessao 呢?

假设空值表示空值 - 您可以使用 last_value window 函数和 ignore nulls 选项:

WITH dataset(value, ts) AS (
    values ('a', timestamp '2012-08-08 01:00'),
        (null, timestamp '2012-08-08 01:01'),
        (null, timestamp '2012-08-08 01:02'),
        ('b', timestamp '2012-08-08 02:00'),
        (null, timestamp '2012-08-08 02:01')
)


SELECT coalesce(value, last_value(value) ignore nulls over (order by ts)) value, ts
FROM dataset

输出:

value ts
a 2012-08-08 01:00:00.000
a 2012-08-08 01:01:00.000
a 2012-08-08 01:02:00.000
b 2012-08-08 02:00:00.000
b 2012-08-08 02:01:00.000