Como criar uma função de janelas personalizada para o PostgreSQL? (Exemplo médio de corrida)

Eu realmente gostaria de entender melhor o que está envolvido na criação de uma UDF que opera sobre janelas no PostgreSQL. Eu fiz algumas pesquisas sobre como criar UDFs em geral, mas não encontrei um exemplo de como fazer um que opera sobre uma janela.

Para esse fim, espero que alguém esteja disposto a compartilhar código sobre como escrever uma UDF (pode ser em C, pl / SQL ou qualquer uma das linguagens procedurais suportadas pelo PostgreSQL) que calcule a média de execução de números em uma janela. Eu percebo que existem maneiras de fazer isso aplicando a função de agregação média padrão com a sintaxe de janelas (linhas entre a sintaxe, creio), estou simplesmente pedindo essa funcionalidade porque acho que é um bom exemplo simples. Além disso, acho que se houvesse uma versão em janelas de função média, o banco de dados poderia manter uma soma de execução e contagem de observação e não somaria conjuntos quase idênticos de linhas em cada iteração.

questionAnswers(4)

yourAnswerToTheQuestion