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.
¿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.
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.
- 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 , …
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