Интерполяция между двумя значениями в одном запросе

Я хочу рассчитать значение путем интерполяции значения между двумя ближайшими соседями. У меня есть подзапрос, который возвращает значения соседей и их относительное расстояние в виде двух столбцов с двумя элементами.

Скажем так:

(select ... as value, ... as distance 
 from [get some neighbours by distance] limit 2) as sub

Как я могу рассчитать значение точки с помощью линейной интерполяции? Возможно ли сделать это одним запросом?

Пример: У моей точки есть сосед A со значением 10 на расстоянии 1 и сосед B со значением 20 на расстоянии 4. Функция должна возвращать значение10 * 4 + 20 * 1 / 5 = 12 для моей точки зрения.

Я попробовал очевидный подход

select sum(value * (sum(distance)-distance)) / sum(distance)

который потерпит неудачу, потому что вы не можете работать с предложениями группы внутри предложений группы. Использование другого подзапроса, возвращающего сумму, также невозможно, потому что тогда я не могу переслать отдельные значения одновременно.

Ответы на вопрос(2)

Ваш ответ на вопрос