140 likes | 271 Views
Bases de datos con MYSQL. TERCERA SESION. Funciones de Grupo. Las funciones de grupo operan sobre un conjunto de filas ( tuplas ) agrupadas por el valor de un atributo en comun. Personas que trabajan En el Departamento 1. Directrices para formar grupos.
E N D
Bases de datos con MYSQL TERCERA SESION
Funciones de Grupo • Las funciones de grupo operan sobre un conjunto de filas (tuplas) agrupadas por el valor de un atributo en comun. Personas que trabajan En el Departamento 1
Directrices para formar grupos • Se tiene que especificar con que atributo, o conjunto de atributos con los que se realizara el grupo • Se tiene que especificar la condicion con que se formara el grupo utilizando la sentencia GROUP BY Grupo formado por la agrupación del atributo Trabaja_en con el valor igual a 1 En este caso GROUP BY = Trabaja_en Ya teniendo la condición realizada Se puede operar los demas atributos con las funciones de grupo
Directrices para funciones de grupo • Existen diversos tipos de funciones de grupo, en esto también algunos DBMS agregan funciones especiales, dentro de las funciones del SQL Standard tenemos:
Directrices para funciones de grupo • Las funciones de grupo operan sobre la selección de atributos realizada en la sentencia SELECT
Utilizando las funciones de grupo • Las funciones de grupo, responde a diferentes consultas donde se ve involucrada una previa agrupacion. • Antes de resolver una consulta se debe tener bien definida la idea de cómo se formara el grupo • Ejemplo • ¿Cuál es el empleado que gana mas salario? AGRUPACION : TODOS FUNCION DE GRUPO MAX(ATRIBUTO)
Utilizando funciones de grupo Resolviendo la consulta tendríamos la siguiente sentencia. SELECT NOMBRE, APELLIDO, MAX(SALARIO) FROM EMPLEADO
Utilizando funciones de grupo • ¿Cuál es el máximo salario de cada departamento? AGRUPACION : DEPARTAMENTO FUNCION DE GRUPO MAX(ATRIBUTO) SELECT TRABAJA_EN , MAX(SALARIO) FROM EMPLEADO GROUP BY TRABAJA_EN
Preguntas para la clase • ¿Cuál es el promedio de los salarios del departamento 1? • ¿Cuál es el promedio de los salarios de todos los departamentos? • ¿Cuál es el salario mas bajo en todos los departamentos? • ¿A cuanto alcanza la suma de los salarios en cada departamento?
Condicionando grupos • Existe un sentencia que condiciona el resultado de las funciones de grupo : El Promedio De los Salarios por Departamento ¿MOSTRAR SOLO PROMEDIO DE LOS SALARIOS MAYORES A 3000 BS.?
La clausula HAVING • La clausula HAVING se utiliza para agregar una condicion, despues de haber realizado una funcion de grupo • Se utiliza para condicionar la agrupacion realizada por el GROUP BY
Directrices para utilizar HAVING • Utilizar Having solo para realizar condiciones a funciones de grupo • Tener bien formulado el grupo de datos a trabajar y condiciones a utilizar • Ejm. Promedio de los salarios de los departamentos que sean mayores a 3000 PASO 1 : DEFINIR LA SENTENCIA DE LA FUNCION DE GRUPO SIN LA CONDICION SELECT TRABAJA_EN , AVG(SALARIO) FROM EMPLEADO GROUP BY TRABAJA_EN
Directrices para utilizar HAVING PASO 2 : APLICAR HAVING A LA FUNCION DE GRUPO CONDICIONANDOLO CON UN VALOR SELECT TRABAJA_EN , AVG(SALARIO) FROM EMPLEADO GROUP BY TRABAJA_EN HAVING AVG(SALARIO) > 3000
Preguntas para la Clase • ¿Qué departamentos tienen salarios máximos arriba de 3500? • ¿Qué departamentos en su suma de salarios sobrepasan los 7000 bs.?