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