Común funciones de la ventana y funciones de análisis

función de ventana de la colmena, función de análisis
1 funciones de análisis: para el nivel, puntos, y otros n-fragmentación

NTILE Colmena es un medio muy poderoso funciones de análisis.

Se puede ver: es el conjunto ordenado de datos asignados al número medio de cubos (NUM) especificados, el número cubo asignado a cada fila. Si no se distribuye de manera uniforme, el número de la prioridad asignada barril más pequeño, y el número de filas de cada cubo puede poner hasta 1 diferencia.
La sintaxis es:
     NTILE (NUM) sobre ([partition_clause] order_by_clause) AS your_bucket_num

   El número de barriles puede entonces, o después de n datos antes de la selección de las partes por.
Ejemplos:

    Para el usuario correspondiente a cada tabla de información de usuario y el consumidor, calcula el consumo medio de 50% de la gastado antes de que el usuario;

 


- la tabla de usuario y el consumo, el consumo disminuyó secuencialmente dividido en dos partes por el promedio
gota Tabla SI EXISTE test_by_payment_ntile;
Crear tabla test_by_payment_ntile AS
SELECT 
      Nick, 
      Pago,
      el NTILE (2) La (el ORDER BY desc Pago) el AS RN 
de test_nick_payment;

- calcular un valor medio cada respectivamente, pueden obtener un 50% y 50% post-consumo adelante consumo medio
SELECT 
   'avg_payment' AS INF,
   t1.avg_payment_up_50 AS avg_payment_up_50,
   t2.avg_payment_down_50 AS avg_payment_down_50
de
 (SELECT
         AVG (Pago ) AS avg_payment_up_50 
  de test_by_payment_ntile 
  DONDE RN = 1.
) T1
   la de Ingreso
(SELECT 
          AVG (Pago) AS avg_payment_down_50 
 de test_by_payment_ntile 
 DONDE RN = 2
) T2
ON (= t1.dp_id t2.dp_id);

 

Rango, DENSE_RANK, ROW_NUMBER

SQL es muy familiarizado con los tres grupos dentro de la función de clasificación. Al igual que la sintaxis:

R () sobre (partición por col1 col2 ... por fin ... desc / asc)


seleccionar 
   class1,
   puntuación,
   rango () sobre (partición por orden class1 por desc score) RK1,
   DENSE_RANK () sobre (partición por orden class1 por desc score) RK2,
   row_number () sobre (partición por orden class1 por desc score) RK3
de zyy_test1;


Diferencia:
        Rango tienen el mismo valor, el mismo número de secuencia de salida, y el siguiente número de secuencia ininterrumpida;

       DENSE_RANK tienen el mismo valor, la salida del mismo número, pero en un número, intermitente

       Los diferentes valores en todo el número row_number salidas, número de serie única continua;

2. La función de ventana Lag, plomo, FIRST_VALUE, LAST_VALUE

Lag, plomo

GAL (col, n, DEFAULT) hasta un valor en la ventana de estadísticas fila enésima

LEAD (col, n, DEFAULT) hasta el n-ésimo valor de la ventana de estadísticas de fila, y el GAL opuesto


- Después de que el grupo ordenado, se movió hacia adelante o hacia atrás
- si se omite el tercer parámetro, el valor predeterminado es NULL, de lo contrario llenar.

seleccionar
    DP_ID,
    mt,
    pago,
    LAG (mt, 2) sobre (partición por orden DP_ID por mt) mt_new
de test2;

 


- Después de que el grupo ordenado, se movió hacia adelante o hacia atrás
- si se omite el tercer parámetro, el valor predeterminado es NULL, de lo contrario llenar.

seleccionar
   DP_ID,
   mt,
   pago,
   LEAD (mt, 2, '1111-1111') sobre (partición por orden DP_ID por mt) mt_new
de test2;

 

FIRST_VALUE, LAST_VALUE

FIRST_VALUE: después de tomar los paquetes ordenados a la línea de corte de corriente, un primer valor

last_value: después de tomar los paquetes ordenados a la corriente de corte de línea, el último valor


- FIRST_VALUE obtener la fila actual en el futuro grupo del primer valor
- LAST_VALUE obtener el último valor en el grupo por delante de la fila actual
- FIRST_VALUE (DESC) para obtener el valor final dentro de un grupo global de
la SELECT
   DP_ID,
   MT,
   Pago,
   FIRST_VALUE (de pago) sobre (partición por DP_ID Ordenar por MT) payment_g_first,
   la LAST_VALUE (de pago) sobre (partición por DP_ID Ordenar por MT) payment_g_last,
  FIRST_VALUE (de pago) sobre (partición por DP_ID Ordenar por desc MT) payment_g_last_global
de test2
la orden por DP_ID, mt;

Publicado 25 artículos originales · ganado elogios 1 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/kimi_Christmas/article/details/89177190
Recomendado
Clasificación