Como escrever janelas e funções analíticas?
Para escrever uma janela e uma função analítica, você precisa seguir esta sintaxe geral:
A função pode ser qualquer função interna ou definida pelo usuário que suporte janelas, como SUM, AVG, ROW_NUMBER, RANK, LAG, LEAD, etc. Os argumentos são as colunas ou expressões nas quais a função opera. A cláusula OVER define a janela para a função, que pode incluir os componentes opcionais PARTITION BY, ORDER BY e frame_clause. A cláusula PARTITION BY especifica as colunas que dividem os dados em grupos. A cláusula ORDER BY especifica as colunas que classificam os dados dentro de cada partição. O quadro_clause especifica o intervalo de linhas a ser incluído no cálculo, que pode ser baseado em LINHAS ou INTERVALO e pode ter opções diferentes para os pontos inicial e final.
Por exemplo, suponha que você tenha uma tabela chamada vendas com colunas data, produto e valor. Você pode usar uma função de janela para calcular a quantidade total de vendas para cada produto ao longo do tempo, da seguinte maneira:
SELECIONE data, produto, valor, SOMA(valor) MAIS (PARTIÇÃO POR ORDEM DO PRODUTO POR DATA) COMO TOTAL
Essa consulta retornará as colunas data, produto, quantidade e total, onde a coluna total é a soma cumulativa da coluna quantidade para cada partição de produto, ordenada pela coluna data.