Postgress如何返回最小列和最大列之间的值



学习postgres/SQL的全新功能我有一个名为error_table的表,它看起来像这样:

id       min     max       error_percent
10R46   1         25          9
10R46   25        50          9
100R91  50        100         4.5
10R91   100       200         4.6
10M95   200       300         5.5

但是当我的输入数字是160时,我很难生成关于如何动态执行此操作的查询,我想返回error_percent值4.6,因为160位于最小列100和最大列200之间。

到目前为止,以下是我在查询中的内容

SELECT error_percent FROM error_table WHERE min <= 160 

现在的问题是,我不能使用max <=160。我将如何动态查询返回的最小结果的相应最大值,并将其用作我的最大值<=返回max?

如果你有比我更好的解决方案,我很感激你的分享。

使用范围比较:

SELECT error_percent
FROM error_table
WHERE min < 160 AND max >= 160;

这假设您的范围在最小侧为打开,在最大侧为关闭。如果没有,则需要更改上述范围比较。

最新更新