P. 1
Funciones-Analiticas

Funciones-Analiticas

|Views: 749|Likes:
Publicado porBrenda Vargas

More info:

Published by: Brenda Vargas on May 16, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/05/2013

pdf

text

original

Funciones Analíticas

En esta oportunidad veremos una técnica interesante en SQL para relacionar valores de 2 filas consecutivas, para todos los registros de una tabla. El criterio de 'consecutividad' puede estar dado por alguna de las columnas de la tabla, como el id, la fecha de creación del registro, etc.

SQL Funciones
Funciones SQL están incorporados en la base de datos Oracle y están disponibles para su uso en diversas sentencias de SQL apropiado. No hay que confundir las funciones de SQL con funciones definidas por el usuario escritas en PL / SQL. Si se llama a una función de SQL con un argumento de un tipo de datos que no sean el tipo de datos esperados por la función de SQL, Oracle intenta convertir el argumento de que el tipo de datos espera que antes de realizar la función de SQL. Si se llama a una función de SQL con un argumento nulo, la función de SQL vuelve automáticamente nula. La única función de SQL que no necesariamente siguen este comportamiento son CONCAT , NVL , y REPLACE . En los diagramas de sintaxis para las funciones de SQL, los argumentos se indican sus tipos. Cuando el parámetro de function aparece en la sintaxis SQL, sustituirla por una de las funciones descritas en esta sección. Las funciones están agrupadas por los tipos de datos de sus argumentos y sus valores de retorno. La sintaxis que muestra las categorías de las funciones siguientes:
Función:: =

Descripción de la ilustración function.gif

single_row_function:: =

Descripción de la ilustración single_row_function.gif

Las secciones que siguen la lista de funciones integradas de SQL en cada uno de los grupos se ilustra en los diagramas anteriores, excepto las funciones definidas por el usuario. Todas las funciones integradas de SQL se describe a continuación en orden alfabético.

Funciones analíticas
Las funciones analíticas calculan un valor agregado sobre la base de un grupo de filas. Se diferencian de las funciones de agregado de que regresen varias filas para cada grupo. El grupo de filas se llama una ventana y se define por la analytic_clause . Para cada fila, una ventana corredera de filas se define. La ventana determina el rango de filas para realizar los cálculos para la fila actual. los tamaños de ventanas puede basarse en un número físico de filas o un intervalo de lógica, como el tiempo. Las funciones analíticas son el último conjunto de operaciones realizadas en una consulta a excepción de la final ORDER BY cláusula. Todo se une y todos los WHERE , GROUP BY , y HAVING cláusulas se completan antes de las funciones analíticas se procesan. Por lo tanto, las funciones analíticas sólo pueden aparecer en la lista de selección o ORDER BY cláusula. Las funciones analíticas se utilizan para calcular acumulativo, en movimiento, centrado, y presentación de informes agregados.

analytic_function:: =

Descripción de la ilustración analytic_function.gif

analytic_clause:: =

Descripción de la ilustración analytic_clause.gif

query_partition_clause :: =

Descripción de la ilustración query_partition_clause.gif

order_by_clause :: =

Descripción de la ilustración order_by_clause.gif

windowing_clause :: =

Descripción de la ilustración windowing_clause.gif La semántica de esta sintaxis se discuten en las secciones que siguen.

analytic_function
Especifique el nombre de una función analítica (véase el listado de las funciones analíticas después de esta discusión de la semántica).

argumentos
Las funciones analíticas tomar 0-3 argumentos. Los argumentos pueden ser cualquier tipo de datos numéricos o de cualquier tipo de datos numéricos que se pueden convertir implícitamente en un tipo de datos numéricos. Oracle determina el argumento con la mayor prioridad numérica y convierte implícitamente el resto de argumentos que tipo de datos. El tipo de retorno es también el tipo de datos, a menos que se indique lo contrario para una función individual.

analytic_clause
Utilice OVER analytic_clause para indicar que la función opera en un conjunto de resultados de la consulta. Es decir, se calcula después de la FROM , WHERE , GROUP BY , y HAVING cláusulas. Usted puede especificar las funciones analíticas de esta cláusula en la lista de selección o ORDER BY cláusula. Para filtrar los resultados de una consulta basada en una función analítica, de incluir esas funciones dentro de la consulta de los padres, y luego filtrar los resultados de la subconsulta anidada.
Notas sobre el analytic_clause: y

y

No se puede especificar cualquier función analítica en cualquier parte del analytic_clause . Es decir, no se puede anidar funciones analíticas. Sin embargo, puede especificar una función analítica en una subconsulta y calcular otra función analítica del mismo. Usted puede especificar OVER analytic_clause con analítica funciones definidas por el usuario, así como las funciones integradas de análisis. Vea CREATE FUNCTION .

query_partition_clause

Utilice la PARTITION BY cláusula de dividir el resultado de la consulta establecidos en grupos basados en uno o más value_expr . Si se omite esta cláusula, la función trata a todas las filas de los resultados de la consulta como un solo grupo. Para utilizar el query_partition_clause en una función analítica, utilizar la rama superior de la sintaxis (sin paréntesis). Para utilizar esta cláusula en un modelo de consulta (en el model_column_clauses ) o una partición de combinación externa (en el outer_join_clause ), utilizar la rama inferior de la sintaxis (con paréntesis). Puede especificar varias funciones analíticas en la misma consulta, cada una con el mismo o diferentes PARTITION BY llaves. Si los objetos que se consulta tienen el atributo paralelo, y si se especifica una función analítica con la query_partition_clause , entonces la función de cálculos en paralelo son así. Los valores válidos de value_expr son constantes, las columnas, las funciones no analíticas, las expresiones de función o expresiones que cualquiera de ellos.

order_by_clause

Utilice el order_by_clause para especificar cómo los datos se ordenan dentro de una partición. Para todas las funciones analíticas, salvo PERCENTILE_CONT y PERCENTILE_DISC (que sólo reciben una sola tecla), usted puede ordenar los valores de una partición en varias claves, cada uno definido por un value_expr y cada uno calificado por una secuencia de pedidos. Dentro de cada función, puede especificar varias expresiones con el pedido. Si lo hace, es especialmente útil cuando se utilizan las funciones que los valores de rango, ya que la segunda expresión puede resolver los vínculos entre los mismos valores de la primera expresión. Cada vez que el order_by_clause resultados en valores idénticos para varias filas, la función devuelve el resultado de la misma para cada una de esas filas. Por favor, consulte el ejemplo de análisis de SUMA para una ilustración de este comportamiento.
Restricción de la cláusula ORDER BY

Cuando se utiliza en una función analítica, la order_by_clause debe tener una expresión ( ). El SIBLINGS palabra clave no es válida (que sólo es relevante en las consultas jerárquicas). Posición ( position ) y los alias de columna ( c_alias ) también son válidos. De lo contrario este order_by_clause es la misma que se utiliza para ordenar la consulta general o una subconsulta.
expr

ASC | DESC

Especifique la secuencia de ordenación (ascendente o descendente). ASC es el valor predeterminado.
NULLS PRIMERA | NULLS ÚLTIMA

Especificar si las filas devueltas que contengan valores nulos debe aparecer primero o el último en la secuencia con el pedido. es el valor predeterminado de orden ascendente, y NULLS FIRST es el predeterminado para orden descendente.
NULLS LAST

Las funciones analíticas siempre operan en filas en el orden especificado en el función. Sin embargo, el order_by_clause de la función no garantiza el orden de los resultados. Utilice el order_by_clause de la consulta para garantizar el resultado final con el pedido.
order_by_clause de la

windowing_clause

Algunas funciones analíticas permiten al windowing_clause . En la lista de las funciones analíticas al final de esta sección, las funciones que permiten al windowing_clause son seguidos por un asterisco (*). FILAS | GAMA Estas palabras definen para cada fila de una ventana (un conjunto físicos o lógicos de filas) utilizado para calcular el resultado de la función. La función se aplica a todas las filas de la ventana. La ventana se moverá a través del conjunto de resultados de consulta o la partición de arriba a abajo.
y y ROWS especifica la ventana en unidades físicas (filas). RANGE especifica la ventana como una lógica de compensación.

No se puede especificar esta cláusula a menos que haya especificado el order_by_clause . El valor devuelto por una función analítica con una lógica de compensación siempre es determinista. Sin embargo, el valor devuelto por una función analítica con un desplazamiento físico puede producir resultados no determinista a menos que los resultados de la expresión de pedido en un único pedido. Puede que tenga que especificar varias columnas de la order_by_clause para lograr este único pedido. ENTRE ... Y Utilice el BETWEEN ... AND cláusula para especificar un punto de partida y el punto final de la ventana. La primera expresión (antes de AND ) se define el punto de inicio y la segunda expresión (después de AND ), define el punto final. Si se omite BETWEEN y especificar sólo un punto final, a continuación, Oracle considera que el punto de inicio, y los valores por defecto punto final a la fila actual. Sin límites ANTERIOR Especifique UNBOUNDED PRECEDING para indicar que la ventana se inicia en la primera fila de la partición. Esta es la especificación de punto de partida y no se puede utilizar como una especificación de punto final. Sin límites SIGUIENTE Especifique UNBOUNDED FOLLOWING para indicar que la ventana termina en la última fila de la partición. Esta es la especificación de punto final y no puede utilizarse como una especificación de punto de partida. CURSO DE FILA

Como punto de partida, CURRENT ROW especifica que la ventana se inicia en la fila actual o el valor (dependiendo de si se ha especificado ROW o RANGE , respectivamente). En este caso, el punto final no puede ser value_expr PRECEDING . Como punto final, CURRENT ROW especifica que la ventana termina en la fila actual o el valor (dependiendo de si se ha especificado ROW o RANGE , respectivamente). En este caso el punto de inicio no puede ser value_expr FOLLOWING . value_expr ANTERIOR o SIGUIENTE value_expr Para RANGE o ROW :
y y

Si value_expr FOLLOWING es el punto de partida, el punto final debe ser value_expr FOLLOWING . Si value_expr PRECEDING es el punto final, entonces el punto de partida debe ser value_expr PRECEDING .

Si está definiendo una ventana lógica definida por un intervalo de tiempo en formato numérico, entonces puede que tenga que utilizar las funciones de conversión.

OLAP
OLAP es el acrónimo en inglés de procesamiento analítico en línea (On-Line Analytical Processing). Es una solución utilizada en el campo de la llamada Inteligencia empresarial (o Business Intelligence) cuyo objetivo es agilizar la consulta de grandes cantidades de datos. Para ello utiliza estructuras multidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de datos o Sistemas Transaccionales (OLTP). Se usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares. Tipos de sistemas OLAP
Tradicionalmente, los sistemas OLAP se clasifican según las siguientes categorías: Implementación OLAP que almacena los datos en un motor relacional. Típicamente, los datos son detallados, evitando las agregaciones y las tablas se encuentran normalizadas. Los esquemas más comunes sobre los que se trabaja son estrella ó copo de nieve, aunque es posible trabajar sobre cualquier base de datos relacional. La arquitectura está compuesta por un servidor de banco de datos relacional y el motor OLAP se encuentra en un servidor dedicado. La principal ventaja de esta arquitectura es que permite el análisis de una enorme cantidad de datos.

HOLAP (Hybrid OLAP)
Almacena algunos datos en un motor relacional y otros en una base de datos multidimensional.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->