4. Agrupamiento de Registros
4.1 GROUP BY
Combina los registros con valores idénticos,
en la lista de campos especificados, en un único registro. Para
cada registro se crea un valor sumario si se incluye una función
SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT.
Su sintaxis es:
SELECT
campos FROM tabla
WHERE criterio
GROUP BY campos
del grupo
GROUP BY es opcional. Los valores de resumen
se omiten si no existe una función SQL agregada en la instrucción
SELECT. Los valores Null en los campos GROUP BY se agrupan y no se omiten.
No obstante, los valores Null no se evalúan en ninguna de las funciones
SQL agregadas.
Se utiliza la cláusula WHERE para excluir
aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar
los registros una vez agrupados.
A menos que contenga un dato Memo u Objeto OLE
, un campo de la lista de campos GROUP BY puede referirse a cualquier campo
de las tablas que aparecen en la cláusula FROM, incluso si el campo
no esta incluido en la instrucción SELECT, siempre y cuando la instrucción
SELECT incluya al menos una función SQL agregada.
Todos los campos de la lista de campos de SELECT
deben o bien incluirse en la cláusula GROUP BY o como argumentos
de una función SQL agregada.
SELECT
Id_Familia, Sum(Stock)
FROM Productos
GROUP BY Id_Familia;
Una vez que GROUP BY ha combinado los registros,
HAVING muestra cualquier registro agrupado por la cláusula GROUP
BY que satisfaga las condiciones de la cláusula HAVING.
HAVING es similar a WHERE, determina qué
registros se seleccionan. Una vez que los registros se han agrupado utilizando
GROUP BY, HAVING determina cuales de ellos se van a mostrar.
SELECT
Id_Familia Sum(Stock) FROM
Productos GROUP BY
Id_Familia
HAVING
Sum(Stock) > 100 AND
NombreProducto Like
BOS*;
4.2 AVG
Calcula la media aritmética de un conjunto de valores contenidos
en un campo especificado de una consulta. Su sintaxis es la siguiente
Avg(expr)
En donde expr representa el campo que contiene los datos numéricos
para los que se desea calcular la media o una expresión que realiza
un cálculo utilizando los datos de dicho campo. La media calculada
por Avg es la media aritmética (la suma de los valores dividido
por el número de valores). La función Avg no incluye ningún
campo Null en el cálculo.
SELECT Avg(Gastos)
AS Promedio FROM
Pedidos WHERE Gastos > 100;
4.3 Count
Calcula el número de registros devueltos por una consulta. Su
sintaxis es la siguiente
Count(expr)
En donde expr contiene el nombre del campo que desea contar. Los operandos
de expr pueden incluir el nombre de un campo de una tabla, una constante
o una función (la cual puede ser intrínseca o definida por
el usuario pero no otras de las funciones agregadas de SQL). Puede contar
cualquier tipo de datos incluso texto.
Aunque expr puede realizar un cálculo sobre un campo, Count simplemente
cuenta el número de registros sin tener en cuenta qué valores
se almacenan en los registros. La función Count no cuenta los registros
que tienen campos null a menos que expr sea el carácter comodín
asterisco (*). Si utiliza un asterisco, Count calcula el número
total de registros, incluyendo aquellos que contienen campos null. Count(*)
es considerablemente más rápida que Count(Campo). No se debe
poner el asterisco entre dobles comillas ('*').
SELECT Count(*)
AS Total FROM Pedidos;
Si expr identifica a múltiples campos, la función Count
cuenta un registro sólo si al menos uno de los campos no es Null.
Si todos los campos especificados son Null, no se cuenta el registro. Hay
que separar los nombres de los campos con ampersand (&).
SELECT Count(FechaEnvío
& Transporte) AS Total FROM
Pedidos;
4.4 Max, Min
Devuelven el mínimo o el máximo de un conjunto de valores
contenidos en un campo especifico de una consulta. Su sintaxis es:
Min(expr)
Max(expr)
En donde expr es el campo sobre el que se desea realizar el cálculo.
Expr pueden incluir el nombre de un campo de una tabla, una constante o
una función (la cual puede ser intrínseca o definida por
el usuario pero no otras de las funciones agregadas de SQL).
SELECT Min(Gastos)
AS ElMin FROM
Pedidos WHERE Pais = 'España';
SELECT Max(Gastos)
AS ElMax FROM
Pedidos WHERE Pais = 'España';
4.5 StDev, StDevP
Devuelve estimaciones de la desviación estándar para la
población (el total de los registros de la tabla) o una muestra
de la población representada (muestra aleatoria) . Su sintaxis es:
StDev(expr)
StDevP(expr)
En donde expr representa el nombre del campo que contiene los datos
que desean evaluarse o una expresión que realiza un cálculo
utilizando los datos de dichos campos. Los operandos de expr pueden incluir
el nombre de un campo de una tabla, una constante o una función
(la cual puede ser intrínseca o definida por el usuario pero no
otras de las funciones agregadas de SQL)
StDevP evalúa una población, y StDev evalúa una
muestra de la población. Si la consulta contiene menos de dos registros
(o ningún registro para StDevP), estas funciones devuelven un valor
Null (el cual indica que la desviación estándar no puede
calcularse).
SELECT StDev(Gastos)
AS Desviacion FROM
Pedidos WHERE Pais = 'España';
SELECT StDevP(Gastos)
AS Desviacion FROM
Pedidos WHERE Pais= 'España';
4.6 Sum
Devuelve la suma del conjunto de valores contenido en un campo especifico
de una consulta. Su sintaxis es:
Sum(expr)
En donde expr respresenta el nombre del campo que contiene los datos
que desean sumarse o una expresión que realiza un cálculo
utilizando los datos de dichos campos. Los operandos de expr pueden incluir
el nombre de un campo de una tabla, una constante o una función
(la cual puede ser intrínseca o definida por el usuario pero no
otras de las funciones agregadas de SQL).
SELECT Sum(PrecioUnidad
* Cantidad) AS Total FROM
DetallePedido;
4.7 Var, VarP
Devuelve una estimación de la varianza de una población
(sobre el total de los registros) o una muestra de la población
(muestra aleatoria de registros) sobre los valores de un campo. Su sintaxis
es:
Var(expr)
VarP(expr)
VarP evalúa una población, y Var evalúa una muestra
de la población. Expr el nombre del campo que contiene los datos
que desean evaluarse o una expresión que realiza un cálculo
utilizando los datos de dichos campos. Los operandos de expr pueden incluir
el nombre de un campo de una tabla, una constante o una función
(la cual puede ser intrínseca o definida por el usuario pero no
otras de las funciones agregadas de SQL)
Si la consulta contiene menos de dos registros, Var y VarP devuelven
Null (esto indica que la varianza no puede calcularse). Puede utilizar
Var y VarP en una expresión de consulta o en una Instrucción
SQL.
SELECT Var(Gastos)
AS Varianza FROM
Pedidos WHERE Pais = 'España';
SELECT VarP(Gastos)
AS Varianza FROM
Pedidos WHERE Pais = 'España';
|