我有一组时间离散点的位置。我想使用一个函数,返回第一个较小和第一个较高时间戳的位置。
例如。
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/