Monday, October 3, 2016

Calcular Promedio Móvil In Oracle Sql

Si ve este mensaje, su navegador ha inhabilitado o no es compatible con JavaScript. Para utilizar todas las funciones de este sistema de ayuda, como la búsqueda, el navegador debe tener habilitado JavaScript. Promedios móviles ponderados con promedios móviles simples, cada valor de datos en la quotwindow en la que se realiza el cálculo tiene un significado o peso igual. A menudo es el caso, especialmente en el análisis de datos de precios financieros, que más datos cronológicamente recientes deberían tener un peso mayor. En estos casos, a menudo se prefiere la funcionalidad de Promedio móvil ponderado (o Promedio móvil exponencial, véase el tema siguiente). Considere la misma tabla de valores de datos de ventas durante doce meses: Para calcular una media móvil ponderada: Calcule cuántos intervalos de datos están participando en el cálculo del promedio móvil (es decir, el tamaño de la ventana de cálculo). Si se dice que la ventana de cálculo es n, entonces el valor de datos más reciente en la ventana se multiplica por n, el siguiente más reciente multiplicado por n-1, el valor anterior al multiplicado por n-2 y así sucesivamente para todos los valores en la ventana. Divida la suma de todos los valores multiplicados por la suma de los pesos para dar el Promedio móvil ponderado sobre esa ventana. Coloque el valor del Promedio Movido Ponderado en una nueva columna de acuerdo con la posición de promedio de arrastre descrita anteriormente. Para ilustrar estos pasos, considere si se requiere un promedio móvil ponderado de ventas de 3 meses en diciembre (usando la tabla anterior de valores de ventas). El término quot3-monthquot implica que el cálculo quotwindowquot es 3, por lo tanto el algoritmo de cálculo del Promedio Movido Ponderado para este caso debería ser: O, si un promedio móvil ponderado de 3 meses fue evaluado en todo el rango original de datos, los resultados serían : Promedio móvil ponderado de 3 meses Promedio de movimiento en T-SQL Un cálculo común en el análisis de tendencias es el promedio móvil (o móvil). Un promedio móvil es el promedio de, por ejemplo, las últimas 10 filas. El promedio móvil muestra una curva más suave que los valores reales, más aún con un período más largo para el promedio móvil, lo que lo convierte en una buena herramienta para el análisis de tendencias. Esta publicación de blog mostrará cómo calcular el promedio móvil en T-SQL. Se utilizarán diferentes métodos dependiendo de la versión de SQL Server. El siguiente gráfico muestra el efecto de suavizado (línea roja) con un promedio móvil de 200 días. Las cotizaciones de acciones son la línea azul. La tendencia a largo plazo es claramente visible. T-SQL Moving Avergage 200 días La demostración a continuación requiere la base de datos TAdb que se puede crear con el script que se encuentra aquí. En el próximo ejemplo calcularemos un promedio móvil de los últimos 20 días. Dependiendo de la versión de SQL Server, habrá un método diferente para hacer el cálculo. Y, como veremos más adelante, las nuevas versiones de SQL Server tienen funciones que permiten un cálculo mucho más efectivo. SQL Server 2012 y posterior Moving Average Esta versión hace uso de una función de ventana agregada. Lo nuevo en SQL 2012 es la posibilidad de restringir el tamaño de la ventana especificando cuántas filas que preceden a la ventana deben contener: Las filas precedentes son 19, porque incluiremos la fila actual también en el cálculo. Como puede ver, el cálculo del promedio móvil en SQL Server 2012 es bastante simple. La siguiente figura muestra el principio de ventana. La fila actual está marcada con amarillo. La ventana está marcada con un fondo azul. El promedio móvil es simplemente el promedio de QuoteClose en las líneas azules: T-SQL Moving average window. Los resultados de los cálculos en versiones anteriores de SQL Server son iguales, por lo que no se mostrarán de nuevo. SQL Server 2005 8211 2008R2 Moving Average Esta versión hace uso de una expresión de tabla común. El CTE es auto referenciado para obtener las últimas 20 filas para cada fila: Promedio móvil antes de SQL Server 2005 La versión anterior a 2005 utilizará una combinación externa izquierda en la misma tabla para obtener las últimas 20 filas. Comparación de rendimiento Si ejecutamos los tres métodos diferentes simultáneamente y comprobamos el plan de ejecución resultante, hay una diferencia dramática en el rendimiento entre los métodos: Comparación de tres Diferentes métodos para calcular el promedio móvil Como puede ver, las mejoras de la función de ventana en SQL 2012 hacen una gran diferencia en el rendimiento. Uso Como se mencionó en el comienzo de este post, las medias móviles se utilizan como una herramienta para ilustrar las tendencias. Un enfoque común es combinar promedios móviles de diferentes longitudes, con el fin de detectar cambios en las tendencias a corto, mediano y largo plazo, respectivamente. De particular interés son el cruce de líneas de tendencia. Por ejemplo, cuando la tendencia corta se mueve sobre la tendencia larga o media, esto puede interpretarse como una señal de compra en el análisis técnico. Y cuando la tendencia corta se mueve bajo una línea de tendencia más larga, esto puede interpretarse como una señal de venta. La tabla de abajo muestra Cotizaciones, Ma20, Ma50 y Ma200. T-SQL Ma20, Ma50, Ma200 comprar y vender señales. Esta entrada del blog forma parte de una serie sobre análisis técnico, TA, en SQL Server. Vea los otros mensajes aquí. Publicado por Tomas LindHow para calcular un promedio móvil SQL sin una actualización de cursor: Si está trabajando con las versiones más recientes de SQL Server, puede utilizar las funciones de ventanas para lograr lo mismo. He publicado el código actualizado al final de la publicación. Para este video, todavía me gusta el proceso de pensamiento de anclaje a una fecha. Video: Promedio móvil de 3 días en SQL Una manera eficiente de calcular una media móvil en SQL usando algunos trucos para establecer anclas de fecha. Hay debates sobre la mejor manera de hacer un SQL Moving Average en SQL Server. Algunas personas piensan que hay momentos en que un cursor es más eficiente. Otros piensan que puedes hacerlo todo de una manera basada en un set sin el cursor. El otro día iba a calcular una media móvil y mi primer pensamiento fue utilizar un cursor. Hice algunas investigaciones rápidas y encontré esta pregunta del foro: Promedio móvil en TSQL Hay una publicación que muestra una subconsulta con una fecha de anclaje para ayudar a encontrar el desplazamiento de 1 y 2 días. Aquí está el script que puede usar para probar el resultado final de SQL Moving Average de 3 días. Aquí está la consulta final. Aquí está la consulta que usaría con SQL Server 2012. Compartir esto: 21 SQL para análisis e informes Tratamiento de NULLs como entrada a funciones de ventana Funciones de ventana La semántica NULL coincide con la semántica NULL para las funciones de agregación de SQL. Otras semánticas se pueden obtener mediante funciones definidas por el usuario, o mediante el uso de DECODE o una expresión CASE dentro de la función de ventana. Funciones de ventanilla con desplazamiento lógico Un desplazamiento lógico se puede especificar con constantes como RANGE 10 PRECEDING. O una expresión que evalúa a una constante, o por una especificación de intervalos como RANGE INTERVAL N DAY / MONTH / YEAR PRECEDING o una expresión que se evalúa a un intervalo. Con el desplazamiento lógico, sólo puede haber una expresión en la lista ORDER BY en la función, con el tipo compatible con NUMERIC si el desplazamiento es numérico o DATE si se especifica un intervalo. Ejemplo 21-7 Función de agregación acumulativa A continuación se muestra un ejemplo de las cantidades acumuladas por ID de cliente por trimestre en 1999: En este ejemplo, la función analítica SUM define, para cada fila, una ventana que comienza al principio de la partición (UNBOUNDED PRECEDING ) Y termina, de forma predeterminada, en la fila actual. Las s SUM anidadas son necesarias en este ejemplo ya que estamos realizando una SUM sobre un valor que es en sí mismo una SUMA. Las agregaciones anidadas se usan muy a menudo en funciones agregadas analíticas. Ejemplo 21-8 Movimiento de la función agregada Este ejemplo de una ventana basada en el tiempo muestra, para un cliente, el promedio móvil de ventas para el mes actual y dos meses anteriores: Tenga en cuenta que las dos primeras filas para el cálculo del promedio móvil de tres meses en el Los datos de salida se basan en un tamaño de intervalo más pequeño que el especificado porque el cálculo de la ventana no puede alcanzar más allá de los datos recuperados por la consulta. Es necesario considerar los diferentes tamaños de ventana que se encuentran en los bordes de los conjuntos de resultados. En otras palabras, puede que tenga que modificar la consulta para incluir exactamente lo que desea. Función de agregación centralizada El cálculo de las funciones de agregación de ventanas centradas alrededor de la fila actual es sencilla. Este ejemplo calcula para todos los clientes un promedio móvil de ventas centrado durante una semana a fines de diciembre de 1999. Encuentra un promedio del total de ventas para el día anterior a la fila actual y un día después de la fila actual, incluyendo la fila actual. Ejemplo 21-9 Agregado centrado Las filas inicial y final de cada cálculo del promedio móvil centrado en productos en los datos de salida se basan en dos días, ya que el cálculo de la ventana no puede superar los datos recuperados por la consulta. Los usuarios deben considerar los diferentes tamaños de ventana que se encuentran en los bordes de los conjuntos de resultados: es posible que sea necesario ajustar la consulta. Funciones agregadas de ventanas en presencia de duplicados El siguiente ejemplo ilustra cómo las funciones de agregación de ventanas calculan valores cuando hay duplicados, es decir, cuando se devuelven varias filas para un único valor de ordenación. La consulta recupera la cantidad vendida a varios clientes durante un intervalo de tiempo especificado. La consulta define una ventana en movimiento que se ejecuta desde la fecha de la fila actual hasta 10 días antes. Tenga en cuenta que la palabra clave RANGE (RANGO) Se utiliza para definir la cláusula windowing de este ejemplo. Esto significa que la ventana puede contener potencialmente muchas filas para cada valor en el rango. En este caso, hay tres pares de filas con valores de fecha duplicados. Ejemplo 21-10 Funciones de agregación de ventanas con desplazamientos lógicos En la salida de este ejemplo, todas las fechas excepto 6 de mayo y 12 de mayo devuelven dos filas con fechas duplicadas. Examine los números comentados a la derecha de la salida para ver cómo se calculan los valores. Tenga en cuenta que cada grupo entre paréntesis representa los valores devueltos para un solo día. Tenga en cuenta que este ejemplo sólo se aplica cuando utiliza la palabra clave RANGE en lugar de la palabra ROWS. También es importante recordar que con RANGE. Sólo puede utilizar 1 ORDER BY expresión en las funciones analíticas ORDER BY cláusula. Con la palabra clave ROWS, puede utilizar múltiples órdenes por expresiones en la cláusula ORDER BY de las funciones analíticas. Tamaño de ventana variable para cada fila Hay situaciones en las que es útil variar el tamaño de una ventana para cada fila, en función de una condición especificada. Por ejemplo, es posible que desee hacer que la ventana sea más grande para ciertas fechas y más pequeña para otras. Suponga que desea calcular el promedio móvil del precio de las acciones durante tres días hábiles. Si tiene un número igual de filas por día para todos los días laborables y no se almacenan días no laborables, puede utilizar una función de ventana física. Sin embargo, si las condiciones no se cumplen, puede calcular una media móvil utilizando una expresión en los parámetros de tamaño de ventana. Las expresiones en una especificación de tamaño de ventana se pueden hacer en varias fuentes diferentes. La expresión podría ser una referencia a una columna de una tabla, como una tabla de tiempo. También podría ser una función que devuelve el límite adecuado para la ventana en función de los valores de la fila actual. La siguiente sentencia para una hipotética base de datos de precios utiliza una función definida por el usuario en su cláusula RANGE para establecer el tamaño de la ventana: En esta sentencia, ttimekey es un campo de fecha. Aquí, fn podría ser una función PL / SQL con la siguiente especificación: 4 si ttimekey es Lunes, Martes Si alguno de los días anteriores son días festivos, ajusta el conteo apropiadamente. Tenga en cuenta que cuando se especifica la ventana utilizando un número en una función de ventana con ORDER BY en una columna de fecha, se convierte en el número de días. También podría haber utilizado la función de conversión de intervalo literal, como NUMTODSINTERVAL (fn (ttimekey), DAY) en lugar de sólo fn (ttimekey) para significar lo mismo. También puede escribir una función PL / SQL que devuelve un valor de tipo de datos INTERVAL. Funciones de agregación de ventanas con desplazamientos físicos Para las ventanas expresadas en filas, las expresiones de ordenación deben ser únicas para producir resultados determinísticos. Por ejemplo, la consulta siguiente no es determinista porque timeid no es único en este conjunto de resultados. Ejemplo 21-11 Funciones de agregación de ventanas con desplazamientos físicos Una manera de manejar este problema sería agregar la columna prodid al conjunto de resultados y al orden en timeid y prodid. Funciones FIRSTVALUE y LASTVALUE Las funciones FIRSTVALUE y LASTVALUE permiten seleccionar la primera y la última fila desde una ventana. Estas filas son especialmente valiosas porque a menudo se utilizan como líneas de base en los cálculos. Por ejemplo, con una partición que contiene los datos de ventas ordenados por día, puede preguntar cuánto fue cada día de ventas en comparación con el primer día de ventas (FIRSTVALUE) del período O quizá desee saber, para un conjunto de filas en el aumento de la orden de venta , ¿Cuál fue el porcentaje de cada venta en la región en comparación con la mayor venta (LASTVALUE) en la región? Si la opción IGNORE NULLS se utiliza con FIRSTVALUE. Devolverá el primer valor no nulo en el conjunto o NULL si todos los valores son NULL. Si IGNORE NULLS se utiliza con LASTVALUE. Devolverá el último valor no nulo en el conjunto o NULL si todos los valores son NULL. La opción IGNORE NULLS es particularmente útil para llenar correctamente una tabla de inventario. Funciones de agregación de informes Después de procesar una consulta, los valores agregados como el número de filas resultantes o el valor promedio de una columna se pueden calcular fácilmente dentro de una partición y ponerse a disposición de otras funciones de generación de informes. Las funciones agregadas de informes devuelven el mismo valor agregado para cada fila de una partición. Su comportamiento con respecto a NULL es el mismo que las funciones de agregado de SQL. La sintaxis es: Además, se aplican las siguientes condiciones: Un asterisco () sólo está permitido en COUNT () DISTINCT sólo se admite si las funciones de agregación correspondientes le permiten valorar expresión1 y valor expresión2 puede ser cualquier expresión válida que incluya referencias de columna o agregados. La cláusula PARTITION BY define los grupos en los que se calcularían las funciones de ventana. Si la cláusula PARTITION BY está ausente, entonces la función se calcula sobre todo el conjunto de resultados de la consulta. Las funciones de informes sólo pueden aparecer en la cláusula SELECT o en la cláusula ORDER BY. El principal beneficio de las funciones de informes es su capacidad para realizar múltiples pasadas de datos en un solo bloque de consulta y acelerar el rendimiento de la consulta. Consultas tales como Contar el número de vendedores con ventas de más de 10 de las ventas de la ciudad no requieren uniones entre bloques de consulta separados. Por ejemplo, considere la pregunta Para cada categoría de producto, busque la región en la que tuvo ventas máximas. La consulta SQL equivalente que utiliza la función de agregación de informes MAX sería: La consulta interna con la función de agregación de informes MAX (SUM (montos)) devuelve: Los resultados completos de la consulta son: Ejemplo 21-12 Reporting Aggregate Example Reportando agregados combinados con consultas anidadas enable Responder a consultas complejas de manera eficiente. Por ejemplo, ¿qué sucede si desea conocer los productos más vendidos en las subcategorías de productos más significativos? A continuación se presenta una consulta que encuentra los 5 productos más vendidos para cada subcategoría de productos que contribuyen a más de 20 de las ventas dentro de su categoría de producto: RATIOTOREPORT Función La función RATIOTOREPORT calcula la relación entre un valor y la suma de un conjunto de valores. Si la expresión de valor de expresión se evalúa como NULL. RATIOTOREPORT también se evalúa como NULL. Pero se trata como cero para calcular la suma de valores para el denominador. Su sintaxis es: En esto, se aplica lo siguiente: expr puede ser cualquier expresión válida que incluya referencias de columna o agregados. La cláusula PARTITION BY define los grupos en los que se va a calcular la función RATIOTOREPORT. Si la cláusula PARTITION BY está ausente, entonces la función se calcula sobre todo el conjunto de resultados de la consulta. Para calcular RATIOTOREPORT de las ventas de cada canal, puede utilizar la siguiente sintaxis: Funciones LAG / LEAD Las funciones LAG y LEAD son útiles para comparar valores cuando las posiciones relativas de las filas se pueden conocer de forma fiable. Funcionan especificando el recuento de filas que separan la fila de destino de la fila actual. Debido a que las funciones proporcionan acceso a más de una fila de una tabla al mismo tiempo sin unirse automáticamente, pueden mejorar la velocidad de procesamiento. La función LAG proporciona acceso a una fila con un desfase dado antes de la posición actual y la función LEAD proporciona acceso a una fila con un desplazamiento dado después de la posición actual. Sintaxis de LAG / LEAD Estas funciones tienen la siguiente sintaxis: offset es un parámetro opcional y el valor por defecto es 1. default es un parámetro opcional y es el valor devuelto si el offset se sitúa fuera de los límites de la tabla o partición. Consulte Densificación de datos para informes para obtener información que muestre cómo utilizar las funciones LAG / LEAD para realizar consultas de comparación de período a período en datos escasos. Funciones PRIMERA / ÚLTIMA Las funciones de agregado FIRST / LAST le permiten clasificar un conjunto de datos y trabajar con sus filas de primer orden o de rango inferior. Después de encontrar las filas superiores o inferiores, se aplica una función agregada a cualquier columna deseada. Es decir, FIRST / LAST le permite clasificar en la columna A, pero devuelve el resultado de un agregado aplicado en las filas de primer orden o de última fila de la columna B. Esto es valioso porque evita la necesidad de una autocombinación o subconsulta, Mejorando así el rendimiento. La sintaxis de estas funciones comienza con una función de agregado regular (MIN MAX, SUM, AVG, COUNT, VARIANCE, STDDEV) que produce un único valor de retorno por grupo. Para especificar la clasificación utilizada, las funciones FIRST / LAST añaden una nueva cláusula que comienza con la palabra KEEP. FIRST / LAST Sintaxis Estas funciones tienen la siguiente sintaxis: Tenga en cuenta que la cláusula ORDER BY puede tener varias expresiones. PRIMERO / ÚLTIMO Como agregados regulares Puede utilizar la familia FIRST / LAST de agregados como funciones agregadas regulares. Ejemplo 21-15 PRIMER / ÚLTIMO Ejemplo 1 La siguiente consulta nos permite comparar el precio mínimo y el precio de lista de nuestros productos. Para cada subcategoría de productos dentro de la categoría de ropa para hombre, devuelve lo siguiente: Precio de lista del producto con el precio mínimo más bajo Precio mínimo más bajo Precio de lista del producto con el precio mínimo más alto Precio más alto PRIMERO / ÚLTIMO Como agregados de informes También puede Utilice la familia FIRST / LAST de agregados como funciones de agregación de informes. Un ejemplo es el cálculo de los meses que tuvieron el mayor y menor aumento en el número de cabezas a lo largo del año. La sintaxis de estas funciones es similar a la sintaxis para cualquier otro agregado de informes. Considere el ejemplo en el Ejemplo 21-15 para FIRST / LAST. ¿Qué pasa si queremos encontrar los precios de lista de los productos individuales y compararlos con los precios de lista de los productos en su subcategoría que tenía los precios mínimos más altos y más bajos La siguiente consulta nos permite encontrar esa información para la subcategoría de la documentación mediante FIRST / LAST Como agregados de reporte. Ejemplo 21-16 PRIMER / ÚLTIMO Ejemplo 2 El uso de las funciones FIRST y LAST como agregados de reporte facilita la inclusión de los resultados en cálculos tales como Salario como un porcentaje del salario más alto. Funciones de percentil inverso Usando la función CUMEDIST, puede encontrar la distribución acumulativa (percentil) de un conjunto de valores. Sin embargo, la operación inversa (encontrar qué valor calcula a cierto percentil) no es ni fácil de hacer ni calculada eficientemente. Para superar esta dificultad, se introdujeron las funciones PERCENTILECONT y PERCENTILEDISC. Estos pueden usarse tanto como funciones de generación de informes de ventanas como también para funciones agregadas normales. Estas funciones necesitan una especificación de orden y un parámetro que toma un valor percentil entre 0 y 1. La especificación de orden se maneja mediante una cláusula ORDER BY con una expresión. Cuando se utiliza como una función agregada normal, devuelve un valor único para cada conjunto ordenado. PERCENTILECONT. Que es una función continua calculada por interpolación, y PERCENTILEDISC. Que es una función escalonada que asume valores discretos. Al igual que otros agregados, PERCENTILECONT y PERCENTILEDISC operan en un grupo de filas en una consulta agrupada, pero con las siguientes diferencias: Requieren un parámetro entre 0 y 1 (inclusive). Un parámetro especificado fuera de este rango resultará en error. Este parámetro debe especificarse como una expresión que se evalúa como una constante. Requieren una especificación de clasificación. Esta especificación de ordenación es una cláusula ORDER BY con una sola expresión. No se permiten expresiones múltiples. Sintaxis de agregación normal Ejemplo de percentil inverso Utilizamos la siguiente consulta para devolver las 17 filas de datos utilizadas en los ejemplos de esta sección: PERCENTILEDISC (x) se calcula escaneando los valores de CUMEDIST en cada grupo hasta que encuentre el primero mayor que O igual a x. Donde x es el valor percentil especificado. Para el ejemplo de consulta donde PERCENTILEDISC (0.5), el resultado es 5.000, como se muestra a continuación: El resultado de PERCENTILECONT se calcula mediante interpolación lineal entre filas después de ordenarlas. Para calcular PERCENTILECONT (x). Primero calculamos el número de fila RN (1x (n-1)), donde n es el número de filas en el grupo y x es el valor percentil especificado. El resultado final de la función agregada se calcula mediante interpolación lineal entre los valores de las filas en los números de fila CRN CEIL (RN) y FRN FLOOR (RN). El resultado final será: PERCENTILECONT (X) if (CRN FRN RN), entonces (valor de la expresión de la fila en RN) else (CRN - RN) (valor de expresión para la fila en FRN) (RN - Expresión para fila en CRN). Considere la consulta de ejemplo anterior, donde calculamos PERCENTILECONT (0.5). Aquí n es 17. El número de fila RN (1 0,5 (n-1)) 9 para ambos grupos. Poniendo esto en la fórmula, (FRNCRN9), devolvemos el valor de la fila 9 como resultado. Otro ejemplo es, si desea calcular PERCENTILECONT (0.66). El número de fila calculado RN (1 0,66 (n -1)) (1 0,6616) 11,67. PERCENTILECONT (0,66) (12-11,67) (valor de la fila 11) (11,67-11) (valor de la fila 12). Estos resultados son: Las funciones de agregado percentil inverso pueden aparecer en la cláusula HAVING de una consulta como otras funciones agregadas existentes. Como agregados de informes También puede utilizar las funciones de agregado PERCENTILECONT. PERCENTILEDISC como funciones de agregación de informes. Cuando se utiliza como funciones de agregación de informes, la sintaxis es similar a la de otros agregados de informes. Esta consulta calcula lo mismo (límite de crédito medio para los clientes en este conjunto de resultados, pero informa el resultado de cada fila en el conjunto de resultados, como se muestra en la siguiente salida: Restricciones de percentiles inversos Para PERCENTILEDISC la expresión en la cláusula ORDER BY puede Ser de cualquier tipo de datos que puede ordenar (numérico, cadena, fecha etc.) Sin embargo, la expresión en la cláusula ORDER BY debe ser un tipo numérico o de fecha y hora (incluidos los intervalos) porque la interpolación lineal se utiliza para evaluar PERCENTILECONT. Si la expresión es del tipo DATE, el resultado interpolado se redondea a la unidad más pequeña para el tipo. Para un tipo DATE, el valor interpolado se redondeará al segundo más cercano, para los tipos de intervalo al segundo más cercano (INTERVAL DAY TO SECOND) O al mes (INTERVAL YEAR TO MONTH) Al igual que otros agregados, las funciones de percentil inverso ignoran NULLs en la evaluación del resultado. Por ejemplo, cuando desea encontrar el valor mediano en un conjunto, Oracle Database ignora los valores NULL y encuentra la mediana Entre los valores no nulos. Puede utilizar la opción NULLS FIRST / NULLS LAST en la cláusula ORDER BY, pero se ignorarán cuando se ignoren NULL. Funciones de rango y distribución hipotéticas Estas funciones proporcionan funcionalidad útil para el análisis de lo que pasa. Por ejemplo, cuál sería el rango de una fila, si la fila se insertó hipotéticamente en un conjunto de otras filas. Esta familia de agregados toma uno o más argumentos de una fila hipotética y un grupo ordenado de filas, devolviendo el RANGO. DENSERANK. PERCENTRANK o CUMEDIST de la fila como si se hubiera insertado hipotéticamente en el grupo. Sintaxis Hipotética de Rango y Distribución Aquí, expresión constante se refiere a una expresión que se evalúa a una constante, y puede haber más de una de esas expresiones que se pasan como argumentos a la función. La cláusula ORDER BY puede contener una o más expresiones que definen el orden de clasificación en el que se basará la clasificación. ASC. DESC. NULLS PRIMERO. NULLS LAST opciones estarán disponibles para cada expresión en el ORDER BY. Ejemplo 21-17 Clasificación y distribución hipotética Ejemplo 1 Usando los datos de precios de lista de la tabla de productos utilizados en esta sección, puede calcular el RANGO. PERCENTRANK y CUMEDIST para un suéter hipotético con un precio de 50 para la forma en que se ajusta dentro de cada una de las subcategorías suéter. La consulta y los resultados son: A diferencia de los agregados de percentil inverso, la cláusula ORDER BY en la especificación de orden para las funciones hipotéticas de rango y distribución puede tomar múltiples expresiones. El número de argumentos y las expresiones en la cláusula ORDER BY deben ser los mismos y los argumentos deben ser expresiones constantes del mismo tipo o compatibles con la expresión ORDER BY correspondiente. El siguiente es un ejemplo usando dos argumentos en varias hipotéticas funciones de clasificación. Ejemplo 21-18 Clasificación y distribución hipotética Ejemplo 2 Estas funciones pueden aparecer en la cláusula HAVING de una consulta como otras funciones agregadas. No pueden utilizarse como funciones de agregación de informes o funciones de agregación de ventanas. Funciones de regresión lineal Las funciones de regresión apoyan el ajuste de una línea de regresión de mínimos cuadrados ordinarios a un conjunto de pares de números. Puede utilizarlos como funciones agregadas o como funciones de creación de ventanas o de informes. Las funciones son las siguientes: Oracle aplica la función al conjunto de pares (e1. E2) después de eliminar todos los pares para los cuales cualquiera de e1 o e2 es nulo. E1 se interpreta como un valor de la variable dependiente (un valor y), y e2 se interpreta como un valor de la variable independiente (un valor x). Ambas expresiones deben ser números. Las funciones de regresión se calculan simultáneamente durante un solo paso a través de los datos. Con frecuencia se combinan con el COVARPOP. COVARSAMP. Y funciones CORR. REGRCOUNT La función REGRCOUNT devuelve el número de pares de números no nulos utilizados para ajustar la línea de regresión. Si se aplica a un conjunto vacío (o si no hay pares (e1, e2) donde ninguno de e1 o e2 es nulo), la función devuelve 0. REGRAVGY y REGRAVGX Funciones REGRAVGY y REGRAVGX calculan los promedios de la variable dependiente y los independientes Variable de la línea de regresión, respectivamente. REGRAVGY calcula el promedio de su primer argumento (e1) después de eliminar (e1. E2) pares donde cualquiera de e1 o e2 es nulo. Del mismo modo, REGRAVGX calcula el promedio de su segundo argumento (e2) después de la eliminación nula. Ambas funciones devuelven NULL si se aplican a un conjunto vacío. REGRSLOPE y REGRINTERCEPT Funciones La función REGRSLOPE calcula la pendiente de la línea de regresión ajustada a pares no nulos (e1. E2). La función REGRINTERCEPT calcula la intersección y de la línea de regresión. REGRINTERCEPT devuelve NULL cuando la pendiente o los promedios de regresión son NULL. Función REGRR2 La función REGRR2 calcula el coeficiente de determinación (generalmente llamado R-cuadrado o bondad de ajuste) para la línea de regresión. REGRR2 devuelve valores entre 0 y 1 cuando se define la línea de regresión (la pendiente de la línea no es nula), y devuelve NULL de otra manera. Cuanto más cercano es el valor 1, mejor la línea de regresión se ajusta a los datos. REGRSXX, REGRSYY y REGRSXY Funciones REGRSXX. REGRSYY y REGRSXY funciones se utilizan en el cálculo de diversas estadísticas de diagnóstico para el análisis de regresión. Después de eliminar (e1. E2) pares donde cualquiera de e1 o e2 es nulo, estas funciones hacen los siguientes cálculos: Regresión lineal Estadísticas Ejemplos Algunas estadísticas de diagnóstico comunes que acompañan al análisis de regresión lineal se dan en la Tabla 21-2, Expresiones. Tenga en cuenta que esto libera nuevas funciones le permiten calcular todas estas. Tabla 21-2 Estadísticas de diagnóstico comunes y sus expresiones Cálculo de regresión lineal en muestra En este ejemplo, calculamos una línea de regresión de mínimos cuadrados ordinarios que expresa la cantidad vendida de un producto como una función lineal del precio de lista de productos. Los cálculos se agrupan por canal de ventas. Los valores SLOPE. INTCPT. RSQR son la pendiente, el intercepto y el coeficiente de determinación de la línea de regresión, respectivamente. El valor (entero) COUNT es el número de productos en cada canal para los cuales se venden tanto la cantidad vendida como los datos de precio de lista. Conjuntos de artículos frecuentes En lugar de contar la frecuencia con la que ocurre un evento determinado (por ejemplo, cuán a menudo alguien ha comprado leche en el supermercado), los conjuntos de artículos frecuentes proporcionan un mecanismo para contar cuán a menudo ocurren varios eventos juntos (por ejemplo, Y cereales juntos en el supermercado). La entrada a la operación de conjuntos de elementos frecuentes es un conjunto de datos que representa colecciones de elementos (conjuntos de elementos). Algunos ejemplos de conjuntos de artículos podrían ser todos los productos que un cliente comprado en un solo viaje a la tienda de comestibles (comúnmente llamado cesta de mercado), las páginas web que un usuario accedió en una sola sesión, o los servicios financieros que un cliente Dado cliente utiliza. La noción de un conjunto de elementos frecuente es encontrar aquellos conjuntos de elementos que se producen con mayor frecuencia. Si aplica el operador de artículos frecuentes a los datos del punto de venta de una tienda de comestibles, podría, por ejemplo, descubrir que la leche y los plátanos son el par de artículos más comúnmente comprados. Por lo tanto, se han utilizado conjuntos de artículos frecuentes en entornos de Business Intelligence durante muchos años, siendo el más común el análisis de cesta de mercado en la industria minorista. Los conjuntos de elementos frecuentes se integran con la base de datos, funcionando en la parte superior de las tablas relacionales y se accede a través de SQL. Esta integración proporciona un par de ventajas clave: Las aplicaciones que anteriormente se basaban en operaciones de elementos frecuentes ahora se benefician de un rendimiento significativamente mejorado, así como una implementación más sencilla. Las aplicaciones basadas en SQL que no utilizaban conjuntos de elementos frecuentes ahora pueden ampliarse fácilmente para aprovechar esta funcionalidad. El análisis de conjuntos de elementos frecuentes se realiza con el paquete PL / SQL DBMSFREQUENTITEMSETS. Consulte Referencia de paquetes y tipos PL / SQL para obtener más información. Otras funciones estadísticas Oracle introduce un conjunto de funciones estadísticas de SQL y un paquete de estadísticas, DBMSSTATFUNCS. Esta sección enumera algunas de las nuevas funciones junto con la sintaxis básica. Consulte Referencia de paquetes y tipos de PL / SQL para obtener información detallada sobre el paquete DBMSSTATFUNCS y la Referencia de SQL de base de datos Oracle para la sintaxis y la semántica.


No comments:

Post a Comment