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
ID | Codigo_Cliente | Nombre_Cliente | Fecha_Compra | Subtotal | Descuento | Impuesto | Total |
---|---|---|---|---|---|---|---|
1 | C00001 | Juan Perez | 2020-01-01 | $500 | $40 | $50 | $510 |
6 | C00006 | Carmen Rocio | 2020-01-01 | $550 | $20 | $55 | $585 |
3 | C00003 | Hector Vargas | 2020-01-01 | $300 | $0 | $0 | $300 |
4 | C00004 | Susana Ruiz | 2020-01-01 | $120 | $0 | $0 | $120 |
7 | C00001 | Juan Perez | 2020-01-02 | $800 | $10 | $80 | $870 |
5 | C00005 | Luisa Delgado | 2020-01-02 | $500 | $0 | $50 | $550 |
2 | C00002 | Diego Veloz | 2020-01-02 | $550 | $45 | $55 | $560 |
8 | C00002 | Diego Veloz | 2020-01-03 | $100 | $10 | $10 | $100 |
9 | C00002 | Diego Veloz | 2020-01-03 | $200 | $10 | $0 | $190 |
10 | C00004 | Susana Ruiz | 2020-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_Compra | VENTAS_MIN | VENTAS_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 |
Comentarios