Dentro del lenguaje SQL existen muchas funciones que me permiten obtener diferentes resultados en base a las necesidades que tengamos, una de esas son las funciones de agregación SQL, estas funciones me permiten realizar cálculos u operaciones sobre los registros de una tabla y sobre una o varias columnas.

Ejemplos desarrollados al final

Las funciones de agregación SQL más usadas son las siguientes:

Función de agregación MIN( )

Esta función me permite obtener el mínimo valor de una expresión a evaluar.

Sintaxis:

SELECT 
MIN(TOTAL) AS VALOR_MINIMO
FROM VENTAS 

Donde:

  • Campo: Es la columna de una tabla.
  • Expresión: Puede ser una función de SQL o un juego de operadores aritméticos.

Función de agregación MAX( )

Esta función me permite obtener el máximo valor de una expresión a evaluar

Sintaxis:

SELECT 
MAX(TOTAL) AS VALOR_MAXIMO
FROM VENTAS 

Donde:

  • Campo: Es la columna de una tabla.
  • Expresión: Puede ser una función de SQL o un juego de operadores aritméticos.

Hay que tener en cuenta que la Función MAX() solo se debe evaluar con valores numéricos, la consulta arrojará un mensaje de error en caso de que la expresión o columna no sea un valor numérico.

Función de agregación AVG( )

La función AVG me devuelve el valor promedio de la expresión a evaluar, hay que tener en cuenta que dicha expresión debe ser numérica, en caso contrario la consulta me devolverá un mensaje de error.

Sintaxis:

SELECT 
AVG( campo o expresión numérica )
FROM VENTAS 

Donde:

  • Campo: Es la columna de una tabla.
  • Expresión: Puede ser una función de SQL o un juego de operadores aritméticos.

Función de agregación SUM( )

SUM() me devuelve la suma de todos los valores especificados en la expresión, así mismo solo debe usarse con expresiones numéricas, caso contrario nos retornará un mensaje de error en la consulta.

Sintaxis:

SELECT 
SUM( expresión1 + expresión2 + expresión(n))
FROM VENTAS 
Donde:
  • Expresión: Puede ser una función de SQL o un juego de operadores aritméticos.
  • Las expresiones deben ser de tipo numérico.

Sentencia GROUP BY y HAVING

Cuando hacemos una consulta con varias columnas y usamos funciones de agregación SQL, debemos usar la sentencia GROUP BY para poder recuperar el resultado de la consulta. Dentro de la sintaxis GROUP BY van a ir todas las columnas que no sean funciones de agregación SQL.

Por otro si necesitamos validar el resultado de una

Casos desarrollados

Teniendo como base la siguiente tabla se desarrollaran los ejercicios a continuación.

TABLA VENTAS

IDCodigo_ClienteNombre_ClienteFecha_CompraSubtotalDescuentoImpuestoTotal
1C00001Juan Perez2020-01-01$500$40$50$510
6C00006Carmen Rocio2020-01-01$550$20$55$585
3C00003Hector Vargas2020-01-01$300$0$0$300
4C00004Susana Ruiz2020-01-01$120$0$0$120
7C00001Juan Perez2020-01-02$800$10$80$870
5C00005Luisa Delgado2020-01-02$500$0$50$550
2C00002Diego Veloz2020-01-02$550$45$55$560
8C00002Diego Veloz2020-01-03$100$10$10$100
9C00002Diego Veloz2020-01-03$200$10$0$190
10C00004Susana Ruiz2020-01-04$210$10$0$200

Caso Desarrollado #1

La empresa ‘XYZ’ necesita conocer la suma total de sus ventas agrupadas por días de venta de todas las ventas que hallan tenido algún tipo de descuento en sus facturas. Renombrar la columna Fecha_Compra como Días_Venta y la suma como Total_Ventas.

Código SQL »

SELECT 
Fecha_Compra AS Dias_Venta, SUM(Total) AS Total_Ventas
FROM VENTAS 
WHEREDescuento>0 
Group By Fecha_Compra

Resultado »

Como nos damos cuenta la consulta solo nos muestra 4 filas porque como nos están solicitando mostrar la fecha de compra junto a la suma, la sentencia GROUP BY agrupa y suma los días que se repiten.

Dias_Venta Total_Ventas
2020-01-01$1095
2020-01-02$1430
2020-01-03$290
2020-01-04$200

Caso desarrollado #2

La empresa necesita saber cuales fueron sus ventas mínimas y sus ventas máximas agrupadas por día, renombrar las ventas mínimas como VENTAS_MIN y las ventas máximas como VENTAS_MAX.

Código SQL »

SELECT 
FECHA_COMPRA,
MIN(TOTAL) AS VENTAS_MIN , 
MAX(TOTAL) AS VENTAS_MAX 
FROM VENTAS 
Group By Fecha_Compra

Resultado »

Fecha_CompraVENTAS_MINVENTAS_MAX
2020-01-01$120,00$585,00
2020-01-02$550,00$870,00
2020-01-03$100,00$190,00
2020-01-04$200,00$200,00

Etiquetado en:

,