Parece que não estou encontrando nenhuma documentação sobre isso (e talvez não conheça o vernáculo do Oracle para isso), mas gostaria de criar uma função que receba uma função: Digamos, faça com que ela me passe uma função de classificação.
Quando olho para um código como este:
LAG(FOO) OVER (PARTITION BY XXX ORDER BY YYY) AS thing
Tenho a sensação de que é exatamente isso que está acontecendo aqui ^^ e a OVER
cláusula é o lambda.
É possível fazer? Estou pensando nisso corretamente? Um exemplo prático seria ótimo.
Não, em outras linguagens as funções são objetos de primeira classe, mas em SQL não são.
Você pode escrever suas próprias funções de agregação personalizadas (exemplos aqui , aqui ou aqui ) que também podem ser usadas como funções analíticas (exemplo fiddle ). No entanto, você não pode passar funções de classificação personalizadas.