SQL PARTITION BY (Português)

Resumo: neste tutorial, você aprenderá a usar o SQL PARTITION BY cláusula para alterar como a função de janela calcula o resultado.

Visão geral da cláusula SQL PARTITION BY

A cláusula PARTITION BY é uma subseção de a cláusula OVER. A cláusula PARTITION BY divide o conjunto de resultados de uma consulta em partições. A função de janela é operada em cada partição separadamente e recalculada para cada partição.

O seguinte mostra a sintaxe da cláusula PARTITION BY:

Você pode especificar uma ou mais colunas ou expressões para particionar o conjunto de resultados. O expression1, expression1, etc., só pode se referir às colunas derivadas de FROM cláusula. Eles não podem se referir a expressões ou apelidos na lista de seleção.

As expressões da cláusula PARTITION BY podem ser expressões de coluna, subconsulta escalar ou função escalar. Observe que uma subconsulta escalar e uma função escalar sempre retornam um único valor.

Se você omitir a cláusula PARTITION BY, todo o conjunto de resultados será tratado como uma única partição.

PARTITION BY vs. GROUP BY

A cláusula GROUP BY é frequentemente usada em conjunto com uma função agregada como SUM() e AVG(). A cláusula GROUP BY reduz o número de linhas retornadas, rolando-as e calculando as somas ou médias de cada grupo.

Por exemplo, a seguinte instrução retorna a média salário dos funcionários por departamentos:

A imagem a seguir mostra o resultado:

A cláusula PARTITION BY divide o conjunto de resultados em partições e muda como a função da janela é calculada. A cláusula PARTITION BY não reduz o número de linhas retornadas.

A declaração a seguir retorna o salário do funcionário e também o salário médio do departamento do funcionário:

Aqui está a saída parcial:

Em palavras simples, a cláusula GROUP BY é agregada, enquanto a cláusula PARTITION BY é analítica.

Neste tutorial, você aprendeu sobre a cláusula SQL PARTITION BY que muda como o resultado da função de janela é calculado.

  • Este tutorial foi útil?
  • Sim Não

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *