2. M.C. OMAR JASSO L.
INTRODUCCIÓN A TRANSACT-SQL
1 INTRODUCCION A TRANSACT-SQL
1.1 Consultas de selección
1.2 Criterios de selección
1.3 Agrupamiento de registros y funciones agregadas
1.4 Consultas de actualización
1.5 Subconsultas
1.6 Consultas y referencias cruzadas
1.7 Consultas de unión interna
1.8 Consultas de unión externa
IMPLEMENTACIÓN DE BASES DE DATOS
3. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y
Funciones agregadas
La cláusula GROUP BY
Agrupa un conjunto seleccionado de filas dentro de un conjunto de filas resumidas en base a los
valores de una o más columnas. Una fila es devuelta por cada grupo. Para obtener información de
cada uno de los grupos es necesario emplear funciones de Agregación
Sintaxis:
SELECT <Campo1> FROM <tabla> GROUP BY <Campo1>
SELECT <Campo1>, <Campo2> FROM <tabla> WHERE <criterio> GROUP BY <Campo1>, <Campo2>
SELECT <Campo1>, <Campo2> FROM <tabla> WHERE <criterio> GROUP BY <Campo1>, <Campo2>
ORDER BY <Campo1>
SELECT Country FROM Customers GROUP BY Country
IMPLEMENTACIÓN DE BASES DE DATOS
4. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y
Funciones agregadas
FUNCIONES DE AGREGADO
Las funciones de agregado son:
COUNT (Conteo)
AVG (Promedio)
MAX(máximo)
MIN(mínimo)
SUM(suma)
StDev , StDevP (desviación estándar)
Var, VarP (varianza)
IMPLEMENTACIÓN DE BASES DE DATOS
5. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función COUNT
Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente
SELECT COUNT(expr) WHERE <tabla> GROUP BY <campo>
•Expr contiene el nombre del campo que desea contar.
•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 (*).
SELECT Count(*) AS Total FROM Customers
SELECT Count(Region) AS Total FROM Customers
SELECT Count(Distinct City) As TCiudades FROM Customers
SELECT Country, Count(*) AS Tclientes FROM Customers GROUP BY Country
SELECT Country, Region, COUNT(*) as TClientes FROM Customers GROUP BY Country,Region
IMPLEMENTACIÓN DE BASES DE DATOS
6. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función COUNT
Cuantos productos diferentes se tienen registrados por cada proveedor (SupplierID)
Select SupplierID ,COUNT(*) productos FROM Products GROUP BY SupplierID
Cuantos productos se tienen registrados de cada categoría (CategoryID)
Select CategoryID,COUNT(*) productos FROM Products GROUP BY CategoryID
Cuantos productos se tienen registrados por cada estado (Descontinuado o no)
Select Discontinued,COUNT(*) productos FROM products GROUP BY Discontinued
IMPLEMENTACIÓN DE BASES DE DATOS
7. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y
Funciones agregadas
La cláusula GROUP BY – Función AVG
Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una
consulta.
Su sintaxis es la siguiente
SELECT AVG(expr) WHERE <tabla> GROUP BY <campo>
•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 función Avg no incluye ningún campo Null en el cálculo.
Ejemplo:
SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100
IMPLEMENTACIÓN DE BASES DE DATOS
8. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y
Funciones agregadas
La cláusula GROUP BY – Función AVG
En promedio cuantas unidades(piezas de productos) se tienen actualmente
SELECT AVG(UnitsInStock) PUnidades FROM Products
En promedio cuantas unidades se tienen por cada proveedor
SELECT SupplierID, AVG(UnitsInStock) PUnidades FROM Products GROUP BY SupplierID
En promedio cuantas unidades no descontinuadas se tienen por cada proveedor
SELECT SupplierID, AVG(UnitsInStock) PUnidades FROM Products WHERE Discontinued=0 GROUP
BY SupplierID
IMPLEMENTACIÓN DE BASES DE DATOS
9. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función AVG
Cual es el precio unitario promedio de los productos por cada proveedor
SELECT SupplierID,AVG(UnitPrice) “Precio promedio” FROM Products GROUP BY SupplierID
Cual es el precio unitario promedio de los productos por cada categoría
SELECT CategoryID,AVG(UnitPrice) “Precio promedio” FROM Products GROUP BY CategoryID
IMPLEMENTACIÓN DE BASES DE DATOS
10. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función MAX y 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:
SELECT MAX(expr) WHERE <tabla> GROUP BY <campo>
SELECT MIN(expr) WHERE <tabla> GROUP BY <campo>
•Expr representa el campo que contiene los datos numéricos para los que se desea obtener el
máximo o mínimo.
Ejemplo:
SELECT Min(Gastos) AS Minimo FROM Pedidos WHERE Pais = ‘Guatemala’
SELECT Max(Gastos) AS Maximo FROM Pedidos WHERE Pais = ‘Guatemala’
Cual es el número máximo de unidades ordenadas en la tabla Productos
SELECT MAX(UnitsOnOrder ) Unidades_Ordenadas FROM Products
Pro cada proveedor, cual es el número máximo de unidades ordenadas
SELECT SupplierID, MAX(UnitsOnOrder) Unidades_Ordenadas FROM Products GROUP BY
SupplierID
IMPLEMENTACIÓN DE BASES DE DATOS
11. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función MAX,MIN
Cual es el precio unitario más bajo de cualquier producto registrado en la tabla de productos
SELECT MIN(UnitPrice) “Precio minimo” FROM Products GROUP BY SupplierID
Por cada proveedor, cual es el precio unitario más alto sin importar el producto
SELECT SupplierID,MAX(UnitPrice) “Precio máximo prov” FROM Products GROUP BY SupplierID
Por cada proveedor-categoria, cual es el precio unitario más alto
SELECT SupplierID,CategoryID,MAX(UnitPrice) “Precio prov cat” FROM Products GROUP BY
SupplierID,CategoryID
IMPLEMENTACIÓN DE BASES DE DATOS
12. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función SUM
Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su
sintaxis es:
SELECT SUM(expr) WHERE <tabla> GROUP BY <campo>
•En donde expr representa 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.
Ejemplo:
SELECT Sum(PrecioUnidad) AS Total FROM DetallePedido
SELECT Sum(Puntos) “Total puntos” FROM Resultado GROUP BY IdEquipo
Cuantos unidades en almacen (unitsInStock) en total se tienen
SELECT SUM(UnitsInStock) Tunidades FROM Products
IMPLEMENTACIÓN DE BASES DE DATOS
13. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función SUM
Cuantas unidades por proveedor se tienen sin importar el producto
SELECT SupplierID,SUM(UnitsInStock) UnidProv FROM Products GROUP BY SupplierID
Cuantas unidades por categoría se tienen sin importar el producto
SELECT CategoryID,SUM(UnitsInStock) UnidCat FROM Products GROUP BY CategoryID
Por cada proveedor-categoria, cuantas unidades se tienen
SELECT SupplierID,CategoryID,SUM(UnitPrice) UnidProvCat FROM Products GROUP BY
SupplierID,CategoryID
IMPLEMENTACIÓN DE BASES DE DATOS
14. M.C. OMAR JASSO L.
1.3 Agrupamiento de registros y Funciones agregadas
La cláusula GROUP BY – Función SUM
En total, cuanto es el monto que se tiene invertido en el inventario
SELECT SUM(UnitsInStock * UnitPrice) Monto FROM Products
IMPLEMENTACIÓN DE BASES DE DATOS