Bases de datos con MYSQL

14
Bases de datos con MYSQL TERCERA SESION

description

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. - PowerPoint PPT Presentation

Transcript of Bases de datos con MYSQL

Page 1: Bases de datos con MYSQL

Bases de datos con MYSQL

TERCERA SESION

Page 2: Bases de datos con MYSQL

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

Page 3: Bases de datos con MYSQL

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

En este casoGROUP BY = Trabaja_en

Ya teniendo la condición realizadaSe puede operar los demas atributoscon las funciones de grupo

Grupo formado por la agrupación del atributo Trabaja_en con el valor igual a 1

Page 4: Bases de datos con MYSQL

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:AVG( atributo ) Promedio del atributo

seleccionado

COUNT( * ) Cuenta las filas de la selección

MAX(atributo ) Valor máximo del atributo

MIN(atributo ) Valor mínimo del atributo

SUM(atributo ) Suma todos los valores del atributo

VARIANCE(atributo )

Varianza del atributo

Page 5: Bases de datos con MYSQL

Directrices para funciones de grupo Las funciones de grupo operan sobre la

selección de atributos realizada en la sentencia SELECT

Page 6: Bases de datos con MYSQL

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 GRUPOMAX(ATRIBUTO)

Page 7: Bases de datos con MYSQL

Utilizando funciones de grupo

Resolviendo la consulta tendríamos la siguiente sentencia.

SELECT NOMBRE, APELLIDO, MAX(SALARIO)FROM EMPLEADO

Page 8: Bases de datos con MYSQL

Utilizando funciones de grupo ¿Cuál es el máximo salario de cada

departamento?

AGRUPACION : DEPARTAMENTO

FUNCION DE GRUPOMAX(ATRIBUTO)

SELECT TRABAJA_EN , MAX(SALARIO)FROM EMPLEADOGROUP BY TRABAJA_EN

Page 9: Bases de datos con MYSQL

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?

Page 10: Bases de datos con MYSQL

Condicionando grupos Existe un sentencia que condiciona el

resultado de las funciones de grupo :

El PromedioDe los

Salarios porDepartamento

¿MOSTRAR SOLO PROMEDIO DE LOS

SALARIOS MAYORES A 3000 BS.?

Page 11: Bases de datos con MYSQL

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

Page 12: Bases de datos con MYSQL

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

SELECT TRABAJA_EN , AVG(SALARIO)FROM EMPLEADOGROUP BY TRABAJA_EN

PASO 1 : DEFINIR LA SENTENCIA DE LA FUNCION DE GRUPO SIN LA CONDICION

Page 13: Bases de datos con MYSQL

Directrices para utilizar HAVING

PASO 2 : APLICAR HAVING A LA FUNCION DE GRUPO CONDICIONANDOLO CON UN VALOR

SELECT TRABAJA_EN , AVG(SALARIO)FROM EMPLEADOGROUP BY TRABAJA_ENHAVING AVG(SALARIO) > 3000

Page 14: Bases de datos con MYSQL

Preguntas para la Clase ¿Qué departamentos tienen salarios máximos

arriba de 3500? ¿Qué departamentos en su suma de salarios

sobrepasan los 7000 bs.?