Mejoras a la Cláusula GROUP BY

Slides:



Advertisements
Presentaciones similares
¿PARA QUE ESTAMOS AQUÍ? LOS OBJETIVOS DE LA ENCARNACIÓN.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
22 3 ¿Qué creen que es? Les doy pistas: Se devora y no se gasta No necesita luz eléctrica Se puede compartir Se lleva a todas partes, facilito Si no.
Resultado 2.2 con actividad 2.2.1
Propiedades de los Reales
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
Interfases Contables en CIO
TEMA 2 MÚLTIPLOS Y DIVISORES
Aranda Fernández, Miguel Ángel García Redondo, Luis Miguel
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Los números.
SISTEMA DE NUMEROS NÚMEROS ENTEROS DIVISIBILIDAD NÚMEROS PRIMOS
integridad referencial
CAPÍTULO 2 Elaboración y utilización de gráficas
Los números.
Estadística Administrativa I
Distribuciones de probabilidad bidimensionales o conjuntas
UPC Tema: ESPACIO VECTORIAL Rn
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
TEORÍA DE CONJUNTOS.
Introducción a los Números Fraccionarios
Teoría matemática.
Funciones de Fecha y Hora
Controlando el Acceso a los Usuarios
Proyecto ProMéxico Plasmas abril SECCIONES NOTICIAS PROYECTOS UNIDAD ACTÚA EVENTUALES secciones ProMéxico.
Proyecto para Centros que trabajan una vez por semana.
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
Exponentes Racionales y Radicales
Estadística Computacional I
La minimización de los costes
Fundamentos de Lógica Difusa (Fuzzy)
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Aqui está Señoras y Señores !!!!!
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 2 Restringiendo y Ordenando Datos.
CULENDARIO 2007 Para los Patanes.
Números enteros.
E.1 Obtener los detalles completos de todos los proyectos.
GUIÓN GRÁFICO VALORES EN LA USB
Universidad Nacional de Colombia Dirección de Bienestar Sede UNIVERSIDAD NACIONAL DE COLOMBIA PROGRAMA DE EGRESADOS 1.
Análisis de impactos mediante modelos de tipo Input-Output
UPC MATRICES MA49 (EPE) Universidad Peruana de Ciencias Aplicadas
EL RETO DE UN GRANDE Y PROFUNDO LEGADO
Numbers.
SUCESIONES Y PROGRESIONES.
MODELACIÓN MATEMÁTICA
Control del Acceso de los Usuarios
Manual de Procedimientos Procedimiento de ejecución del programa de
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
CAPITULO 1 Escribiendo Sentencias SELECT Básicas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Subconsultas Avanzadas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 7 Produciendo Salidas Más Legibles con iSQL*Plus.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
CAPITULO 10 Manejando Restricciones
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
Bases de Datos Sql.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
Transcripción de la presentación:

Mejoras a la Cláusula GROUP BY CAPITULO 16 Mejoras a la Cláusula GROUP BY Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Objetivos Después de este capítulo, usted estará en capacidad de: Usar la operación ROLLUP para producir subtotales de grupos Usar la operación CUBE para producir subtotales en tabulación cruzada Usar la función GROUPING para identificar los valores creados con ROLLUP y CUBE Usar la cláusula GROUPING SETS para producir múltiples conjuntos de resultados en una consulta simple Universidad del Cauca – FIET – Departamento de Sistemas

Revisión de las funciones de grupo SELECT [Columna,] FuncionDeGrupo (Expresión), … FROM Tabla [WHERE Condición] [GROUP BY ExpresiónDeGrupo] [ORDER BY Columna]; Universidad del Cauca – FIET – Departamento de Sistemas

Revisión de las funciones de grupo Universidad del Cauca – FIET – Departamento de Sistemas

Revisión de la cláusula HAVING SELECT [Columna,] FuncionDeGrupo (Expresión), … FROM Tabla [WHERE Condición] [GROUP BY ExpresiónDeGrupo] [HAVING CondiciónDeGrupo] [ORDER BY Columna]; El orden de ejecución de las cláusulas es el siguiente: Se toma la fuente de datos con la cláusula FROM Se excluyen las filas que no cumplen con la condición de la cláusula WHERE Se arman los grupos de acuerdo a las columnas de la cláusula GROUP BY Se aplican las Funciones de Grupo que están en la cláusula SELECT a los grupos previamente formados Se excluyen los grupos que no cumplen con la condición de la cláusula HAVING Se ordenan los resultados conforme se establece en la cláusula ORDER BY Universidad del Cauca – FIET – Departamento de Sistemas

Revisión de la cláusula HAVING Empleados Universidad del Cauca – FIET – Departamento de Sistemas

GROUP BY con ROLLUP y CUBE Los operadores ROLLUP Y CUBE se usan en la cláusula GROUP BY para producir filas de datos con subtotales de datos por grupos y por filas de grupos ROLLUP muestra el resultado de la cláusula GROUP BY y adicionalmente subtotales por cada grupo resultante CUBE muestra el resultado de ROLLUP y adicionalmente subtotales por filas de grupos (subtotales en tabulación cruzada) Es preciso asegurarse de que los datos resultantes tienen sentido, de lo contrario se producirá información irrelevante Estos operadores están disponibles desde Oracle 8i en adelante Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador ROLLUP SELECT [Columna,] FuncionDeGrupo (Expresión), … FROM Tabla [WHERE Condición] [GROUP BY [ROLLUP] ExpresiónDeGrupo] [HAVING CondiciónDeGrupo] [ORDER BY Columna]; ROLLUP es una extensión de la cláusula GROUP BY. Se usa para mostrar estadísticas o resumen de información empresarial Los resultados de un ROLLUP normalmente se usan para escribir reportes tabulares, de barras o gráficos Un operador ROLLUP que produce N subtotales (dimensiones) equivale a N-1 sentencias SELECT que se relacionan con el operador de conjunto UNION ALL, pero es más eficiente Dadas N expresiones (o columnas del GROUP BY) el operador ROLLUP genera N+1 grupos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador ROLLUP Se usan 2 expresiones y se generan 2+1 (3) grupos de resultados (filas normales, totales por departamento y gran total) Fila super-agregada Total grupo Dep_Id = 10 Total grupo Dep_Id = 20 Total grupo Dep_Id = 30 Total de todos los grupos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador ROLLUP Dep_Id 30 20 10 S G A V O P Pu Emp_Cargo Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador CUBE SELECT [Columna,] FuncionDeGrupo (Expresión), … FROM Tabla [WHERE Condición] [GROUP BY [CUBE] ExpresiónDeGrupo] [HAVING CondiciónDeGrupo] [ORDER BY Columna]; CUBE es una extensión de la cláusula GROUP BY. Se usa para mostrar estadísticas o resumen de información empresarial con totales tabulados en forma cruzada Cada posible combinación de columnas se usa par producir subtotales (filas superagregadas) Dadas N expresiones (o columnas del GROUP BY) el operador CUBE genera 2N posibles combinaciones superagregadas (dimensiones). Matemáticamente, estas combinaciones forman un cubo N-dimensional. Estos cubos se pueden analizar con reportes de barras o gráficos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador CUBE Total de todos los grupos Totales por cargo Total Dep_Id = 10 Se usan 2 expresiones y se generan 22 (4) grupos de resultados (filas normales, totales por departamento, totales por cargo y gran total) Total Dep_Id = 20 Total Dep_Id = 30 Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Operador CUBE Dep_Id 30 20 10 S G A V O P Pu Emp_Cargo Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Función GROUPING SELECT [Columna,] FuncionDeGrupo (Expresión), … GROUPING (ExpresiónDeGrupo) FROM Tabla [WHERE Condición] [GROUP BY [ROLLUP | CUBE] ExpresiónDeGrupo] [HAVING CondiciónDeGrupo] [ORDER BY Columna]; La función GROUPING puede usarse con los operadores ROLLUP o CUBE Con esta función se puede distinguir fácilmente las filas del resultado que son súper agregaciones (dimensiones) Con esta función se distingue fácilmente los valores NULL resultados de la conformación del GRUPO, de los valores creados por los operadores ROLLUP o CUBE Esta función retorna cero (0) o uno (1) Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Función GROUPING Valores Nulos generados por ROLLUP Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas GROUPING SETS GROUPING SETS son una extensión adicional de la cláusula GROUP BY Se usa para definir múltiples grupos en la misma consulta y facilitar el análisis de múltiples dimensiones Si no se usan los GROUPING SETS, se procesarían los grupos cada uno por aparte con GROUP BY y luego se combinan los resultados con un operador UNION ALL El uso de GROUPING SETS es eficiente debido a: Se realiza una sola pasada por las tablas requeridas para obtener los resultados El usuario no necesita realizar complejas operaciones UNION Entre más conjuntos de grupos se nota más la eficiencia Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas GROUPING SETS CUBE (a, b, c) es equivalente a GROUPING SETS ( (a, b, c), (a, b), (a, c), (b, c), (a), (b), (c), ()) ROLLUP (a, b, c) es equivalente a (a, b), (a), Para calcular el grupo () con dos expresiones se realiza una consulta similar a: SELECT NULL, NULL, Sum(Emp_Salario) FROM Empleados GROUP BY (); Con este ejemplo se obtienen los super totales Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas GROUPING SETS y ROLLUP Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas GROUPING SETS y ROLLUP Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas GROUPING SETS y ROLLUP Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Columnas compuestas Una columna compuesta es una colección de columnas que son tratadas como una unidad durante los cálculos de los grupos ROLLUP (a, (b, c), d) Cuando se usan columnas compuestas con los operadores ROLLUP, CUBE y GROUPING SETS permite saltar ciertos niveles de agregación cruzada Por ejemplo, GROUP BY ROLLUP (a, (b, c)) es equivalente a: GROUP BY ROLLUP (a, z) donde z=(b, c) GROUPING SETS ((a, z), (a), ()) GROUPING SETS ((a, b, c), (a), ()) Sin usar los paréntesis en el ejemplo, seria equivalente a: GROUPING SETS ( (a, b, c), (a, b), (a), ()) Es decir se elimina la combinación (a, b) Universidad del Cauca – FIET – Departamento de Sistemas

Algunas equivalencias usando columnas compuestas GROUP BY ROLLUP (a, b, c) GROUP BY SETS ((a, b, c), (a, b), (a), ()) GROUP BY CUBE ((a, b), c) ((a, b, c), (a, b), (c), ()) GROUP BY GROUPING SETS SELECT … GROUP BY a UNION ALL SELECT … GROUP BY b SELECT … GROUP BY c ((a, b, c)) GROUP BY a, b, c (a, (b), ()) SELECT … GROUP BY () Universidad del Cauca – FIET – Departamento de Sistemas

Uso de columnas compuestas ROLLUP (a, (b, c)) es equivalente a: GROUPING SETS ((a, b, c), (a), ()) que en este caso es: GROUPING SETS ( (Dep_Id, Emp_cargo, Emp_Jefe), (Dep_Id), () ) 1 2 1 1 2 3 2 1 2 3 Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Grupos concatenados Los grupos concatenados ofrecen una forma concisa para generar combinaciones útiles de grupos, por ejemplo: GROUP BY GROUPING SETS (a, b), GROUPING SETS (c, d) que equivale a: (a, c), (a, d), (b, c), (b, d) Se pueden concatenar los operadores ROLLUP, CUBE y GROUPING SETS. Inclusive se puede usar la combinación de consultas Muy útil para aplicaciones OLAP (Online Analytic Processing) Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Grupos concatenados Retorna la suma de los salarios para los siguientes grupos: (Dep_Id, Emp_Cargo, Emp_Jefe) (Dep_Id, Emp_Cargo) (Dep_Id, Emp_Jefe) (Dep_Id) 1 2 1 3 4 3 Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Grupos concatenados Retorna la suma de los salarios para los siguientes grupos: (Dep_Id, Emp_Cargo, Emp_Jefe) (Dep_Id, Emp_Cargo) (Dep_Id, Emp_Jefe) (Dep_Id) 1 2 2 3 4 4 2 4 2 4 Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Grupos concatenados Dep_Id, ROLLUP (Emp_Cargo), CUBE (Emp_Jefe) Dep_Id, (Emp_Cargo, () ), (Emp_Jefe, () ) Las posibles concatenaciones son: Dep_Id, Emp_Cargo, Emp_Jefe Dep_Id, Emp_Cargo, () Dep_Id, (), Emp_Jefe Dep_Id, (), () Que se resumen en: Dep_Id, Emp_Cargo Dep_Id, Emp_Jefe Dep_Id Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Resumen En esta lección usted debió aprender a : Usar la operación ROLLUP para producir subtotales de grupos Usar la operación CUBE para producir subtotales en tabulación cruzada Usar la función GROUPING para identificar los valores creados con ROLLUP y CUBE Usar la cláusula GROUPING SETS para producir múltiples conjuntos de resultados en una consulta simple (equivalente al enfoque de UNION ALL) Usar la cláusula GROUP BY para combinar expresiones de varias formas: Columnas compuestas Concatenación de conjuntos de grupos (GROUPING SETS) Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Practica 16 Realizar una práctica de cinco (5) puntos que permite practicar: El uso del operador ROLLUP El uso del operador CUBE El uso de la función GROUPING El uso de GROUPING SETS Universidad del Cauca – FIET – Departamento de Sistemas