【发布时间】:2015-02-22 21:43:15
【问题描述】:
给定下表,我想在 00:00:00 处选择每个 ID 的值。当在这个确切时间有一个条目时,返回它,否则使用线性插值(00:00:00 之前和之后的最接近值之间的假想图形线)计算它。如果在给定时间之后还没有值,则返回最后一个值,或使用最后两点的线性插值。
ID|Timestamp|Value
1|2015-01-01 23:00:00|90
1|2015-01-02 01:00:00|110
2|2015-01-01 23:00:00|210
2|2015-01-02 01:00:00|190
3|2015-01-02 00:00:00|50
4|2015-01-01 23:00:00|100
5|2015-01-01 22:00:00|80
5|2015-01-01 23:00:00|90
结果:
ID|Value
1|100
2|200
3|50
4|100
5|100
这是否仅适用于 MySQL 以及如何实现?
【问题讨论】:
-
在 MySQL 中是可能的。在支持窗口函数的数据库中会容易得多(几乎可以是任何其他数据库)。
-
@Mihai:不,5 将在 22:30:00 时为 85。在 00:00:00,它将是 90 (23:00:00) +10 = 100。
标签: mysql