Resumen: en este tutorial, aprenderá a usar SQL PARTITION BY
cláusula para cambiar cómo la función de ventana calcula el resultado.
Descripción general de la cláusula SQL PARTITION BY
La cláusula PARTITION BY
es una subcláusula de la cláusula OVER
. La cláusula PARTITION BY
divide el conjunto de resultados de una consulta en particiones. La función de ventana se opera en cada partición por separado y se recalcula para cada partición.
A continuación se muestra la sintaxis de la cláusula PARTITION BY
:
Puede especificar una o más columnas o expresiones para particionar el conjunto de resultados. expression1
, expression1
, etc., solo pueden hacer referencia a las columnas derivadas de FROM
cláusula. No pueden hacer referencia a expresiones o alias en la lista de selección.
Las expresiones de la cláusula PARTITION BY
pueden ser expresiones de columna, subconsulta escalar o función escalar. Tenga en cuenta que una subconsulta escalar y una función escalar siempre devuelven un solo valor.
Si omite la cláusula PARTITION BY
, todo el conjunto de resultados se trata como una sola partición.
PARTICIÓN POR vs GRUPO POR
La cláusula GROUP BY
se usa a menudo junto con una función agregada como SUM()
y AVG()
. La cláusula GROUP BY
reduce el número de filas devueltas al acumularlas y calcular las sumas o promedios para cada grupo.
Por ejemplo, la siguiente declaración devuelve el promedio salario de los empleados por departamentos:
La siguiente imagen muestra el resultado:
La cláusula PARTITION BY
divide el conjunto de resultados en particiones y cambia cómo se calcula la función de la ventana. La cláusula PARTITION BY
no reduce el número de filas devueltas.
La siguiente declaración devuelve el salario del empleado y también el salario promedio del departamento del empleado:
Aquí está la salida parcial:
En palabras simples, la cláusula GROUP BY
es agregada mientras que la cláusula PARTITION BY
es analítica.
En este tutorial, ha aprendido acerca de la cláusula SQL PARTITION BY
que cambia la forma en que se calcula el resultado de la función de ventana.
- ¿Le resultó útil este tutorial?
- SíNo