Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Uso de Funciones Cube y Rollup en Oracle: Agrupación Multidimensional de Datos, Apuntes de Psicología

Las funciones cube y rollup en oracle db, sus propiedades y cómo utilizarlas para agrupar y obtener información acumulada de datos multidimensionales. Contiene ejemplos prácticos y explicaciones detalladas.

Tipo: Apuntes

2013/2014

Subido el 25/04/2014

salvilmaes
salvilmaes 🇪🇸

6 documentos

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Redactado por Hector Ulloa Ligarius
Para
http://es.groups.yahoo.com/group/desarrolloOracle
Uso de Funciones Cube y Rollup
Función CUBE
La función cube es una agrupación de datos , pero que responde a las propiedades de las Combinatorias
Produce un producto cruz de los elementos especificados , por ello cuando la propiedad CUBE
posee tres argumentos la cantidad de filas retornada será 2**n = 2**3 = 8 filas
Las tuplas normales de la tabla se llaman filas regulares, mientras que las filas retornadas para la función
CUBE se llaman filas SUPERAGGREGATE
Estructura para ejemplificar uso de CUBE
Estructura de ejemplo
SQL> desc t
Name Null? Type
------------------------------- -------- ----
CAMPO1 VARCHAR2(2)
CAMPO2 NUMBER
CAMPO3 VARCHAR2(3)
SQL> select * from t;
CAMPO1
CAMPO2
CAMPO3
A
1
CA
A
2
CA
B
1
BC
C
1
CC
C
2
NC
C3
3
BC
C3
1
BC
A
4
CA
A
3
UY
B
4
BC
10 rows selected.
SQL>
La función CUBE simplemente se ocupa para realizar posibles combinaciones sobre las filas especificadas...
Ejemplo 1 :
SQL> select campo1 , sum(campo2) from t group by cube(campo1);
Simplemente hará la agrupación por campo1 y un totalizador general
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Uso de Funciones Cube y Rollup en Oracle: Agrupación Multidimensional de Datos y más Apuntes en PDF de Psicología solo en Docsity!

Redactado por Hector Ulloa Ligarius Para http://es.groups.yahoo.com/group/desarrolloOracle

Uso de Funciones Cube y Rollup

Función CUBE

La función cube es una agrupación de datos , pero que responde a las propiedades de las Combinatorias

Produce un producto cruz de los elementos especificados , por ello cuando la propiedad CUBE posee tres argumentos la cantidad de filas retornada será 2n = 23 = 8 filas

Las tuplas normales de la tabla se llaman filas regulares, mientras que las filas retornadas para la función CUBE se llaman filas SUPERAGGREGATE

Estructura para ejemplificar uso de CUBE

Estructura de ejemplo

SQL> desc t Name Null? Type


CAMPO1 VARCHAR2(2) CAMPO2 NUMBER CAMPO3 VARCHAR2(3)

SQL> select * from t;

CAMPO1 CAMPO2 CAMPO

A 1 CA

A 2 CA

B 1 BC

C 1 CC

C 2 NC

C3 3 BC

C3 1 BC

A 4 CA

A 3 UY

B 4 BC

10 rows selected.

SQL>

La función CUBE simplemente se ocupa para realizar posibles combinaciones sobre las filas especificadas...

Ejemplo 1 :

SQL> select campo1 , sum(campo2) from t group by cube(campo1); Simplemente hará la agrupación por campo1 y un totalizador general

CAMPO

SUM(CAMP

O2)

22 Fila superagreggate A (^10) Filas regulares B 5 Filas regulares C 3 Filas regulares C3 (^4) Filas regulares

Esto se explica pues agrupo por campo1 y obtuvo un resultado total

Ejemplo 2 :

SQL> select campo1,campo3,sum(campo2) from t group by cube(campo1,campo3); Ahora retornamos todas las combinaciones posibles entre campo1 y campo3 , y obtenemos resultados de sum(Campo2)

CAMPO1 CAMPO

SUM(CAMP

O2)

BC 9

CA 7

CC 1

NC 2

UY 3

A 10

A CA 7

A UY 3

B 5

B BC 5

C 3

C CC 1

C NC 2

C3 4

C3 BC 4

C3 BC 4

16 rows selected.

La misma sentencia pero ordenada, para que se aprecie mejor el resultado

CAMPO1 CAMPO

SUM(CAMP

O2)

A CA 7 Por ejemplo indica que para la combinación de A y CA existe una suma de 7 A UY (^3) Por ejemplo indica que para la combinación de A y UY existe una suma de 3 A 10 Y que para la A existe un total general de 10 B BC 5 B 5 C CC 1 C NC 2 C 3 C3 BC 4 C3 4 BC 9 También indica que valores para BC existen 9 como suma CA 7 También indica que valores para CA existen 7 como suma CC 1 NC 2 UY 3 (^22) E indica que total general de la suma existen 22

Estructura de ejemplo

SQL> desc t Name Null? Type


CAMPO1 VARCHAR2(2) CAMPO2 NUMBER CAMPO3 VARCHAR2(3)

SQL> select * from t;

CAMPO1 CAMPO2 CAMPO

A 1 CA

A 2 CA

B 1 BC

C 1 CC

C 2 NC

C3 3 BC

C3 1 BC

A 4 CA

A 3 UY

B 4 BC

10 rows selected.

Ejemplo

CAMPO1 CAMPO

SUM(CAMP

O2)

GROUPING(

CAMPO1)

GROUPING(

CAMPO3)

A CA 7 0 0 El valor del campo1 se asocia con A UY 3 0 0 el valor del campo 3 y se obtiene A 10 0 1 una suma correspondiente B BC 5 0 0 B 5 0 1 C CC 1 0 0 C NC 2 0 0 C 3 0 1 C3 BC 4 0 0 C3 4 0 1 El campo1 se totaliza 22 1 1

No existen las totalizaciones para el campo3 como en el CUBE, se pierde la idea de producto cruz

En este ejemplo se aprecia de mejor forma el agrupamiento jerárquico de ROLLUP

select campo1,campo3,campo2,count() , grouping (campo1) , grouping (campo3) from t group by rollup(campo1,campo3,campo2) order by campo1,campo3;*

CAMPO1 CAMPO3 CAMPO2 COUNT(*)

GROUPING(

CAMPO1)

GROUPING(

CAMPO3)

A CA 1 1 0 0

A CA 2 1 0 0

A CA 4 1 0 0

A CA 3 0 0

A UY 3 1 0 0

A UY 1 0 0

A 4 0 1

B BC 1 1 0 0

B BC 4 1 0 0

B BC 2 0 0

B 2 0 1

C CC 1 1 0 0

C CC 1 0 0

C NC 2 1 0 0

C NC 1 0 0

C 2 0 1

C3 BC 1 1 0 0

C3 BC 3 1 0 0

C3 BC 2 0 0

C3 2 0 1

En el ejemplo se aprecia que realiza las agrupaciones, según el valor de A con los valores de los otros campos mencionados en el ROLLUP

Redactado por Hector Gabriel Ulloa Ligarius Para http://es.groups.yahoo.com/group/desarrolloOracle