Está en la página 1de 7

Base de Datos

SQL
Funciones de Agregado

Funciones de Agregado
Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven un
solo valor. Si exceptuamos la funcin COUNT, todas las funciones de agregado ignoran los
valores NULL. Las funciones de agregado se suelen utilizar acompaadas de la clusula
GROUP BY.(no como parte de su expresin)
Las funciones de agregado slo se pueden utilizar como expresiones en:
La lista de seleccin de una instruccin SELECT
Clusulas HAVING.
Entre las funciones de agregado o agrupamiento estndar de SQL tenemos:
AVG
SUM
COUNT
MAX
MIN

AVG - Promedio
Devuelve el promedio de los valores de un grupo. Los valores NULL se pasan por alto.
Su sintaxis es la siguiente
AVG ( [DISTINCT ] expresin )

Donde:
DISTINCT
: Especifica que AVG se ejecute slo en cada instancia nica de un valor, sin importar el nmero de
veces que aparezca el valor.
Expresin

: Representa el campo que contiene los datos numricos para los que se desea calcular la media.

Ejemplo:
SELECT
FROM
WHERE

AVG(notas) as Promedio_curso
Estudiante
numero_certamen=1;

Resolver:
1.

Obtener el promedio de crditos de las asignaturas dictadas el primer semestre de 2010

2.

Obtener el promedio de semestres que dura una carrera en la universidad.

SUM - Suma
Devuelve la suma de todos los valores o slo de los valores DISTINCT de la expresin. SUM slo puede
utilizarse con columnas numricas. Los valores Null se pasan por alto.
Su sintaxis es la siguiente
SUM ( [DISTINCT ] expresin )

Donde:
DISTINCT

: Especifica que SUM devuelve la suma de los valores nicos. .

Expresin

: Representa el campo que contiene los datos numricos para los que se desea calcular la suma.

Ejemplo:
SELECT
FROM
WHERE

SUM(Precios) As Total_Ventas
venta
cod_producto=120054;

Resolver:
1.

Obtener el ingreso anual, por cada alumno, percibido por las carreras del depto de Auditoria.

2.

Indicar cuntos crditos ha inscrito el alumno Juan Perez el segundo semestre de 2012.

COUNT Contar registros


Calcula el nmero de registros devueltos por una consulta.
Su sintaxis es la siguiente
COUNT ( [DISTINCT ] expresin | *])

Donde:
DISTINCT

: Especifica que COUNT devuelva el nmero de valores nicos no NULL.

Expresin

: Representa el campo que contiene los datos para los que se desea obtener la cantidad de registros.

: Si utiliza un asterisco, Count calcula el nmero total de registros, incluyendo aquellos que
contienen campos null.

Ejemplo:
SELECT
FROM
WHERE

COUNT (*) AS alumnos


Estudiante
carrera=Ing. Geomtica;

Resolver:
1.

Obtener la cantidad de alumnos de la asignatura Ingeniera de Sistemas el segundo semestre de 2010.

2.

Indicar cuntos alumnos de Ingeniera Geomtica han inscrito asignaturas el primer semestre de 2009.

MIN/MAX Mnimo o Mximos valores


Devuelven el valor mnimo o el mximo de un conjunto de valores contenidos en un campo especfico de
una consulta.
Su sintaxis es la siguiente
MIN (expresin )
MAX (expresin )

Donde:
Expresin
: Representa el campo que contiene los datos numricos de los que se desea obtener el
menor o mayor valor existente.

Ejemplo:
SELECT MIN(pagos) as menor_gasto
FROM gasto
WHERE departamento=Aseo

SELECT MAX (Precio) as Mayor_precio


FROM producto
WHERE proveedor=12546

Resolver:
1.

Indicar el valor de la carrera ms costosa de la universidad.

2.

Indicar el menor nmero de crditos que puede tener una asignatura.

GROUP BY / HAVING
GROUP BY : Combina los registros con valores idnticos, en la lista de campos especificados, en un
nico registro.
Para cada registro se crea un valor sumario si se incluye una funcin SQL agregada,
como por ejemplo Sum o Count en la instruccin SELECT.
HAVING

: La clusula HAVING acta sobre los datos ya agrupados filtrando de acuerdo a un criterio
determinado, de la misma forma en que la clusula WHERE acta filtrando los datos del
SELECT.

Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY o
como argumentos de una funcin SQL agregada.
SELECT
departamentos , SUM(ventas) as ventas_mes
FROM
gasto
GROUP BY departamentos
SELECT
departamentos , SUM(ventas) as ventas_mes
FROM
gasto
GROUP BY departamentos
HAVING
SUM(ventas) >= 1.500.000

Resolver:
1.

Indicar cuntos
carrera.

alumnos

existen

por

2.

Indicar las carreras con 100 alumnos o


ms, especificando cuntos tiene cada una.

También podría gustarte