lunes, 5 de diciembre de 2016

Funciones de Agregación
Son funciones que toman una colección de valores como entrada y producen un único valor de salida.
COUNT(atributo)

  • Devuelve el número de tuplas o valores especificados en una consulta para el atributo indicado. 
  • Se puede utilizar como atributo *.
  • SUM(atributo), MAX(atributo), MIN(atributo), AVG(atributo). 
  • Se aplican a valores numéricos y devuelven la suma, el máximo, mínimo y media de los atributos indicados. 
  • Se pueden utilizar en la cláusula SELECT o en el HAVING. 
  • En el SELECT no pueden aparecer otros atributos a menos que se incluyan en el GROUP BY.
Ejemplos: 
¿Cuántas películas ha protagonizado Mickey Mouse?
SELECT COUNT(*) FROM pelicula P, protagoniza S, actor A WHERE P.titulo = S.titulo_pelicula AND P.anio = S.anio_pelicula AND A.nombre = S.nombre_actor AND A.nombre = ‘Mickey Mouse’

SELECT SUM (sueldo), MAX (sueldo), MIN(sueldo) AVG(sueldo) FROM empleado  SELECT COUNT (*) FROM empleado  SELECT COUNT(DISTINCT sueldo) FROM empleado

Subconsultas

  • En general se admiten varios niveles de anidación.
  • Para evitar la ambigüedad los atributos sin cualificar siempre se referirán a las relaciones declaradas en la consulta más interna. 
  • Para evitar problemas es aconsejable cualificar los atributos y utilizar alias para las relaciones.
SELECT nombre
FROM empleado
WHERE sueldo > SELECT sueldo
                              FROM empleado
                              WHERE dpto = 5

Operadores de Subconsultas
EXISTS (subconsulta)

  • Se utiliza para comprobar si el resultado de una consulta anidada es vacio. 
  • Devuelve true si la tabla no es vacía, en otro caso devuelve falso. 

NOT EXISTS (subconsulta)

  • Se utiliza para comprobar si el resultado de una consulta anidada no es vacio. 
  • Devuelve true si la tabla es vacía, en otro caso devuelve falso. 

atributo operador_comparación ALL (subconsulta)

  •  Se utiliza para comparar, mediante alguno de los operadores de comparación, si el valor de un atributo es mayor, menor, igual, … que todos los valores de un determinado conjunto de valores. 
  •  La subconsulta debe devolver una lista de valores. 

Atributo operador_comparación ANY (subconsulta)

  • Es similar al operador ALL, lo único que lo diferencia es que el valor del atributo únicamente tiene que ser igual, menor, mayor, … que al menos uno de los valores del conjunto. 
  • La subconsulta debe devolver una lista de valores.
Group By
  • Se utiliza para formar agrupaciones de tuplas en función de los valores de uno o varios atributos. 
  • Se utiliza con funciones de agregación. 
  • No es necesario utilizar WHERE. 
  • Como resultado en el SELECT, sólo pueden aparecer funciones de agregación o los atributos que aparecen en GROUP BY. … GROUP BY at1 , at2 , …, atn , … 
Ejemplo:
SELECT dpto, COUNT(*), AVG(sueldo) FROM empleado GROUP BY dpto

Having:

  • Se utiliza siempre con GROUP BY. 
  • Impone condiciones sobre los grupos formados previamente en GROUP BY. 
  • Las condiciones son similares a las utilizadas en WHERE, pero se pueden utilizar funciones de agregación. 
  • Mientras que WHERE impone condiciones a las tuplas , HAVING impone condiciones los grupos. 

No hay comentarios.:

Publicar un comentario