如何从未确定的组中获取第一个值
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
任何人都可以帮我解决这个问题,我正在使用 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 |