eXTReMe Tracker

Mayo 09, 2004

Las funciones de agrupación y agregación en SQL

Escrito el Mayo 9, 2004 09:16 AM en Bases de datos .

Las funciones de agrupación operan sobre conjuntos de filas para dar un resultado por grupo. Así tenemos para atributos numéricos
AVG da un amedia
SUM suma los valores
MIN calcula el valor mínimo
MAX calcula el valor máximo

Las funciones de agrupación ignoran los valores NULL en las consultas, aunque se puede utilizar NVL (en Oracle) para forzar a que considere a NULL como un valor determinado.

SELECT AVG(NVL(sueldo,0))
FROM empleado

Calcula el sueldo medio de los empleados, considerando 0 los valores que sean NULL

Mediante la cláusula GROUP BY se dividen las filas que devuelve una consulta en pequeños grupos. Cuando lo utilicemos hay que tener en cuenta que todas las columnas que pongamos en el SELECT que no estén en el GROUP BY, han de estar en una función de agrupación.

Así es correcto

SELECT departamento, AVG(sueldo)
FROM empleados
GROUP BY departamento

Y no lo es

SELECT departamento, sueldo
FROM empleados
GROUP BY departamento

Tiene sentido ya que si agrupamos los empleados por departamente ¿el sueldo de cual nos devolvería?

Eso sí, la columna que pongamos en el GROUP BY no ha de estar en el SELECT y podemos utilizar más de una columna. Con GROUP BY no se utiliza WHERE, sino HAVING, que sirve para seleccionar grupos.

SELECT departamento, MAX(sueldo)
FROM empleados
GROUP BY departamento
HAVING MAX(sueldo) > 2000

En este nos selecciona el sueldo máximo agrupado por departamento, siempre y cuando el sueldo sea mayor que 2000

Trackback

Puedes hacen ping a esta entrada con la dirección http://www.error500.net/cgi-bin/mt-tb.cgi/194 .

Comentarios

Escribe un comentario










¿Recordar información personal?