SQL_Funciones_de_Agregado (1)
-
Upload
carlos-perez-tello -
Category
Documents
-
view
219 -
download
0
description
Transcript of SQL_Funciones_de_Agregado (1)
-
Base de Datos
SQLFunciones de Agregado
-
Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven unsolo valor. Si exceptuamos la funcin COUNT, todas las funciones de agregado ignoran losvalores NULL. Las funciones de agregado se suelen utilizar acompaadas de la clusulaGROUP 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
Funciones de Agregado
-
Devuelve el promedio de los valores de un grupo. Los valores NULL se pasan por alto.
Su sintaxis es la siguienteAVG ( [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 AVG(notas) as Promedio_curso
FROM Estudiante
WHERE numero_certamen=1;
AVG - Promedio
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.
-
Devuelve la suma de todos los valores o slo de los valores DISTINCT de la expresin. SUM slo puedeutilizarse con columnas numricas. Los valores Null se pasan por alto.
Su sintaxis es la siguienteSUM ( [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 SUM(Precios) As Total_Ventas
FROM venta
WHERE cod_producto=120054;
SUM - Suma
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.
-
Calcula el nmero de registros devueltos por una consulta.
Su sintaxis es la siguienteCOUNT ( [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 quecontienen campos null.
Ejemplo:SELECT COUNT (*) AS alumnos
FROM Estudiante
WHERE carrera=Ing. Geomtica;
COUNT Contar registros
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.
-
Devuelven el valor mnimo o el mximo de un conjunto de valores contenidos en un campo especfico deuna consulta.
Su sintaxis es la siguienteMIN (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 MAX (Precio) as Mayor_precio
FROM producto
WHERE proveedor=12546
SELECT MIN(pagos) as menor_gasto
FROM gasto
WHERE departamento=Aseo
MIN/MAX Mnimo o Mximos valores
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 : Combina los registros con valores idnticos, en la lista de campos especificados, en unnico 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 criteriodeterminado, de la misma forma en que la clusula WHERE acta filtrando los datos delSELECT.
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY ocomo 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
GROUP BY / HAVING
Resolver:
1. Indicar cuntos alumnos existen porcarrera.
2. Indicar las carreras con 100 alumnos oms, especificando cuntos tiene cada una.