我有一组时间离散点的位置。我想使用一个函数,返回第一个较小和第一个较高时间戳的位置。
例如。

timestamp | pos
5         | (-3, -3)
10        | (0, 0)
15        | (3, 3)
20        | (6, 6)

如果我在这个表中查询时间戳17,我将得到行
15        | (3, 3)
20        | (6, 6)

我期待着
SELECT * FROM positions WHERE timestamp = first_smaller(17)
SELECT * FROM positions WHERE timestamp = first_greater(17)

最佳答案

select * from positions where timestamp <= 17 order by timestamp desc limit 1;


select * from positions where timestamp >= 17 order by timestamp asc limit 1;

关于sql - PostgreSQL找到周围的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17450432/

10-15 19:43