nterpolação entre dois valores em uma única consul

Eu quero calcular um valor interpolando o valor entre dois vizinhos mais próximos. Eu tenho uma subconsulta que retorna os valores dos vizinhos e sua distância relativa, na forma de duas colunas com dois elemento

Digamos

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

Como posso calcular o valor do ponto por interpolação linear? É possível fazer isso em uma única consulta?

Exemplo Meu ponto tem o vizinho A com valor 10 na distância 1 e o vizinho B com valor 20 na distância 4. A função deve retornar um valor10 * 4 + 20 * 1 / 5 = 12 pelo meu ponto.

Tentei a abordagem óbvia

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

que falhará porque você não pode trabalhar com cláusulas de grupo dentro de cláusulas de grupo. Usar outra subconsulta retornando a soma também não é possível, porque não posso encaminhar os valores individuais ao mesmo temp

questionAnswers(2)

yourAnswerToTheQuestion