Curso de SQL

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*;

.�AVG (Media Aritm�tica)

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;

.�Count (Contar Registros)

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;

Podemos hacer que el gestor cuente los datos diferentes de un determinado campo

SELECT Count(DISTINCT Localidad) AS Total FROM Pedidos;

.�Max y Min (Valores M�ximos y M�nimos)

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';

.�StDev y StDevP (Desviaci�n Est�ndar)

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';

.�Sum (Sumar Valores)

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;

.�Var y VarP (Varianza)

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';

.�COMPUTE de SQL-SERVER

Esta cl�usula a�ade una fila en el conjunto de datos que se est� recuperando, se utiliza para realizar c�lculos en campos num�ricos. COMPUTE act�a siempre sobre un campo o expresi�n del conjunto de resultados y esta expresi�n debe figurar exactamente igual en la cl�usula SELECT y siempre se debe ordenar el resultado por la misma o al menos agrupar el resultado. Esta expresi�n no puede utilizar ning�n ALIAS.

SELECT IdCliente, Count(IdPedido) FROM Pedidos
GROUP BY IdPedido HAVING Count(IdPedido) > 20 COMPUTE Sum(Count(IdPedido))

SELECT IdPedido, (PrecioUnidad * Cantidad - Descuento) FROM [Detalles de Pedidos]
ORDER BY IdPedido
COMPUTE  Sum((PrecioUnidad * Cantidad - Descuento)) // Calcula el Total
BY IdPedido // Calcula el Subtotal

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP