Funções de Janela
Funções de janela são uma categoria de funções SQL que realizam cálculos sobre um conjunto de linhas relacionadas à linha atual dentro de uma janela ou partição definida.
Elas são utilizadas para realizar cálculos e análises sobre um subconjunto de linhas sem reduzir o conjunto de resultados, diferentemente das funções de agregação que normalmente reduzem o número de linhas retornadas por uma consulta.
Explicação
Considere a seguinte tabela Sales
:
Se o objetivo for calcular a receita total para cada produto específico e exibi-la em uma coluna adicional dentro da tabela principal, em vez de gerar uma nova tabela agrupada, o resultado pode ser semelhante ao seguinte:
Mas como podemos fazer isso?
Utilizar GROUP BY
não é adequado para esta tarefa, pois esta cláusula reduz o número de linhas ao agrupá-las de acordo com critérios especificados, resultando apenas nos IDs e seus respectivos valores somados sendo retornados.
É por isso que as funções de janela são essenciais para resolver este problema.
Implementação
Podemos obter o resultado necessário utilizando a seguinte consulta:
1234567SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
Uma sintaxe geral para criar uma função de janela pode ser descrita da seguinte forma:
SELECT
aggregation_func() OVER (
PARTITION BY partition_column
ORDER BY order_column
)
FROM
table_name;
- SELECT: Indica que uma consulta está prestes a começar;
- aggregation_func(): A função de agregação (por exemplo,
SUM
,AVG
,COUNT
) que realiza um cálculo sobre um conjunto de linhas definido pela janela; - OVER: Palavra-chave que introduz a função de janela;
- PARTITION BY: Divide o conjunto de resultados em partições com base nos valores das colunas especificadas. A função de janela opera separadamente em cada partição;
- partition_column: A coluna utilizada para particionar o conjunto de resultados.
- ORDER BY: Especifica a ordem das linhas dentro de cada partição;
- order_column: A coluna utilizada para ordenar as linhas dentro de cada partição.
- FROM: Indica a tabela de origem da qual os dados são recuperados;
- table_name: O nome da tabela da qual os dados estão sendo selecionados.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.35
Funções de Janela
Deslize para mostrar o menu
Funções de janela são uma categoria de funções SQL que realizam cálculos sobre um conjunto de linhas relacionadas à linha atual dentro de uma janela ou partição definida.
Elas são utilizadas para realizar cálculos e análises sobre um subconjunto de linhas sem reduzir o conjunto de resultados, diferentemente das funções de agregação que normalmente reduzem o número de linhas retornadas por uma consulta.
Explicação
Considere a seguinte tabela Sales
:
Se o objetivo for calcular a receita total para cada produto específico e exibi-la em uma coluna adicional dentro da tabela principal, em vez de gerar uma nova tabela agrupada, o resultado pode ser semelhante ao seguinte:
Mas como podemos fazer isso?
Utilizar GROUP BY
não é adequado para esta tarefa, pois esta cláusula reduz o número de linhas ao agrupá-las de acordo com critérios especificados, resultando apenas nos IDs e seus respectivos valores somados sendo retornados.
É por isso que as funções de janela são essenciais para resolver este problema.
Implementação
Podemos obter o resultado necessário utilizando a seguinte consulta:
1234567SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
Uma sintaxe geral para criar uma função de janela pode ser descrita da seguinte forma:
SELECT
aggregation_func() OVER (
PARTITION BY partition_column
ORDER BY order_column
)
FROM
table_name;
- SELECT: Indica que uma consulta está prestes a começar;
- aggregation_func(): A função de agregação (por exemplo,
SUM
,AVG
,COUNT
) que realiza um cálculo sobre um conjunto de linhas definido pela janela; - OVER: Palavra-chave que introduz a função de janela;
- PARTITION BY: Divide o conjunto de resultados em partições com base nos valores das colunas especificadas. A função de janela opera separadamente em cada partição;
- partition_column: A coluna utilizada para particionar o conjunto de resultados.
- ORDER BY: Especifica a ordem das linhas dentro de cada partição;
- order_column: A coluna utilizada para ordenar as linhas dentro de cada partição.
- FROM: Indica a tabela de origem da qual os dados são recuperados;
- table_name: O nome da tabela da qual os dados estão sendo selecionados.
Obrigado pelo seu feedback!