función de ventana de SQL (función de ventana)

Ventana puede entenderse como un conjunto de registros, la función de ventana que ha satisfecho las funciones especiales realizadas en un registro establecen ciertas condiciones. Función de ventana también se conoce como funciones OLAP, análisis OLAP que es procesado en tiempo real (procesamiento analítico en línea).

 

sintaxis:

<Función de ventana> OVER ([PARTITION BY <columnas de agrupación>] ORDER BY <columna sort>)

(Nota: mediante el registro del conjunto de paquetes se conoce PARTITION BY ventana, sin necesidad de utilizar mediante reparto, entonces todo el conjunto de datos como una gran ventana.)

(Nota: La función de ventana sólo se puede utilizar en la cláusula SELECT.)

(Nota: ORDER BY aquí sólo se utiliza para determinar la función de ventana se calcula según en qué orden, el orden no tiene efecto sobre los resultados.)

 

Función de ventana se pueden utilizar son:

1, una función de ventana puede ser utilizado como funciones agregadas: SUM, AVG, COUNT, MAX, MIN

2, las funciones especiales de ventanas: RANK, DENSE_RANK, ROW_NUMBER, etc.

 

donde:

De RANK () : calculado de clasificación (mismo rango si el registro está presente, entonces se saltará la clasificación, por ejemplo: 1,2,2,4)

El DENSE_RANK () : calculado de clasificación (incluso si la grabación de la misma existen rango, no omitir después de la clasificación, por ejemplo: 1,2,2,3)

El ROW_NUMBER () : impartir clasificación continua y única, por ejemplo: 1,2,3,4

 

Además de la cláusula de partición y el orden por cláusula, también se puede añadir la cláusula marco. marco es un subconjunto de la partición actual, cláusula marco de reglas para definir el subconjunto, que se utiliza generalmente como una ventana deslizante. (Es decir especificar el marco de:. Ventana designar para más detalles) Por ejemplo:

FILA 2 anterior: Las dos primeras filas

FILA 5 siguiente: Después de cinco filas

Filas entre 1 anterior y 1 siguiente: una fila a la primera fila después del 1 de

 

La sintaxis resumirse como sigue:

window_function (expresión) OVER ( 
   [Partición POR part_list] 
   [ORDER BY order_list] 
   [{FILAS | GAMA} ENTRE frame_start Y frame_end])

 

Ejemplos:

seleccionar item_id, cate_id, rango () sobre (partición por orden cate_id por precio) como rango de item_list;
seleccione item_id, cate_id, suma (precio) sobre (partición por cate_id) como rango de item_list;
seleccionar item_id, cate_id, avg (precio) sobre (orden por filas de precios entre 1 anterior y 1 siguiente) como rango de item_list;

 

¿Por qué utilizar la función de ventana?

1 la clasificación en el grupo. Por ejemplo, la lista de personal estadístico antes de cada una de las tres salarios del sector.

2, el recuento acumulado. Debido a que la función de ventana para el registro actual como estadísticas de referencia, se puede calcular a partir de la cantidad acumulativa actual de pedidos / valor medio de los pedidos / cantidad máxima de pedido / cantidad mínima de pedido / número es el número de pedidos, también se puede añadir un plazo determinado para el cálculo de la media móvil ( media móvil).

 

referencia:

https://ericfu.me/sql-window-function/

 

Supongo que te gusta

Origin www.cnblogs.com/HuZihu/p/12102652.html
Recomendado
Clasificación