Compartir a través de


Introducción a las funciones de ventana

Las funciones de ventana funcionan en varias filas (registros) de un conjunto de filas a la vez. A diferencia de las funciones de agregación, las funciones de ventana requieren que las filas del conjunto de filas se serialicen (tienen un orden específico para ellas). Las funciones de ventana pueden depender del orden para determinar el resultado.

Las funciones de ventana solo se pueden usar en conjuntos serializados. La manera más fácil de serializar un conjunto de filas es usar el operador serialize. Este operador "inmoviliza" el orden de las filas de forma arbitraria. Si el orden de las filas serializadas es semánticamente importante, use el operador de ordenación para forzar un orden determinado.

El proceso de serialización tiene un costo no trivial asociado. Por ejemplo, podría impedir el paralelismo de consultas en muchos escenarios. Por lo tanto, no aplique la serialización innecesariamente. Si es necesario, reorganice la consulta para realizar la serialización en el conjunto de filas más pequeño posible.

Conjunto de filas serializado

Un conjunto de filas arbitrario (como una tabla o la salida de un operador tabular) se puede serializar de una de las maneras siguientes:

  1. Ordenando el conjunto de filas. Vea a continuación una lista de operadores que emiten conjuntos de filas ordenados.
  2. Mediante el operador serialize.

Muchos operadores tabulares serializan la salida cada vez que la entrada ya está serializada, incluso si el operador no garantiza que el resultado se serialice. Por ejemplo, esta propiedad está garantizada para el operador extend, el operador project y el operador where.

Operadores que emiten conjuntos de filas serializados ordenando

Operadores que conservan la propiedad del conjunto de filas serializado