【发布时间】:2020-12-30 08:17:24
【问题描述】:
我在 PrestoSQL 中有如下表格:
test
id value timestamp
1 foo blue 2019-10-17 17:42:52
2 foo <NA> 2019-10-17 17:43:52
3 foo <NA> 2019-10-17 17:44:52
4 foo red 2019-10-17 17:45:52
5 foo <NA> 2019-10-17 17:46:52
6 bar <NA> 2019-10-17 17:47:52
7 bar green 2019-10-17 17:48:52
8 bar <NA> 2019-10-17 17:49:52
9 bar <NA> 2019-10-17 17:50:52
10 bar <NA> 2019-10-17 17:51:52
我的目标是填写出现在value中的值,例如:
output
id value timestamp
1 foo blue 2019-10-17 17:42:52
2 foo blue 2019-10-17 17:43:52
3 foo blue 2019-10-17 17:44:52
4 foo red 2019-10-17 17:45:52
5 foo red 2019-10-17 17:46:52
6 bar <NA> 2019-10-17 17:47:52
7 bar green 2019-10-17 17:48:52
8 bar green 2019-10-17 17:49:52
9 bar green 2019-10-17 17:50:52
10 bar green 2019-10-17 17:51:52
我了解如何使用 lead() 和 lag(),但是如果不是 NA,如何编写查询以通过时间戳(和 id)从先前已知值中填充当前值?
任何建议将不胜感激
【问题讨论】: