Existe um nome formal/acadêmico para a família de funções no Sql Server como ROW_NUMBER(), LAG, LEAD, RANK etc, que fazem uso da OVER(ORDER BY <PARTITION BY> )
sintaxe? Quanto disso é coberto pelo padrão ansi?
Posso ver no MSDN que algumas delas estão listadas como funções analíticas, mas outras são funções de classificação.
Pergunto usando nomes do Sql Server, mas uma das razões pelas quais quero saber é para me ajudar a descobrir como traduzir algumas dessas consultas para outros bancos de dados e avaliar o suporte entre esses bancos de dados. A outra razão é para me ajudar a compreender o conceito de forma mais completa. A maior parte da minha experiência é anterior ao uso do Sql Server e, ultimamente, descobri que estou muito acostumado com soluções alternativas antigas, quando uma dessas funções pode ser a opção mais fácil. Saber como me referir a eles me ajudará ao ler outras coisas.
Acredito que o termo que você está procurando é
window functions
. A maioria dos bancos de dados tem suporte para esses tipos de funções.Fonte
Uma função de janela é uma das seguintes :