Saltar al contenido

La cláusula GROUP BY de SQL

La cláusula GROUP BY de SQL te permite agrupar registros en sql de tus consultas en función de una o más columnas específicas. Este articulo muestra con ejemplos muy simples como funciona.

Índice

    Como usar Group by de SQL?

    La cláusula GROUP BY en SQL se utiliza para identificar las columnas de agrupación para una consulta. Estas columnas deben ser declaradas cuando se utilizan funciones de agregación como SUM, AVG, MIN, MAX o COUNT para calcular valores agrupados.

    Sintaxis

    select column1 , column2 , sum(valor)
    from tabla
    group by column1 , column2

    observacion esta sintaxis utilizamos la funcion de agregacion sum() pero podemos usar cualquier AVG, MIN, MAX o COUNT. para estos casos la funcion sum debe contener una columna de tipo de dato numerico.

    Agrupar registros con GROUP BY de SQL y ORDER BY

    La cláusula ORDER BY en SQL se utiliza para ordenar los resultados de una consulta según uno o más criterios específicos. Cuando se utiliza junto con la cláusula GROUP BY, se puede ordenar los resultados por los valores de las columnas utilizadas para definir los grupos.

    En este ejemplo contaremos la cantidad de veces que aparece el un código de producto

    SELECT [ProductID],COUNT([ProductID])
    FROM [AventureWorks].[SalesLT].[SalesOrderDetail]
    Group by [ProductID]
    ORDER BY COUNT([ProductID]) DESC

    te recomiendo descargar la base de datos de adventure works para esto.

    Ejemplos SQL WHERE con GROUP BY de SQL

    La cláusula WHERE en SQL se utiliza para filtrar los resultados de una consulta en función de una o más condiciones específicas. Cuando se utiliza junto con la cláusula GROUP BY, se puede filtrar los resultados antes de agruparlos.

    Ejemplo

    SELECT [ProductID],COUNT([ProductID])
    FROM [AventureWorks].[SalesLT].[SalesOrderDetail]
    WHERE ProductID > 700
    Group by [ProductID]
    ORDER BY COUNT([ProductID]) DESC

    Podriamos desglosar mas operadores logicos pero te recomiendo que veas el enlace de como utilizar el like en sql esta este operador seria de gran utilidad.

    GROUP BY de SQL con CTE

    Para agrupar un registros en un CTE , primero define el CTE con la consulta que necesites. Luego, utiliza el CTE en una consulta más grande que incluya GROUP BY. El resultado final será una tabla que muestre el total agrupado por el criterio definido en GROUP BY.

    Puedes seguir los siguientes pasos:

    1. Primero, define tu CTE con la consulta que necesites. Por ejemplo:
        WITH ventas AS (
          SELECT producto, SUM(cantidad) AS total
         FROM tabla_ventas
         GROUP BY producto
          )

    En este caso, estamos creando un CTE llamado «ventas» que suma la cantidad vendida por producto.

    1. Luego, utiliza el CTE en una consulta más grande que incluya GROUP BY. Por ejemplo:
        SELECT producto, SUM(total) AS total_vendido
          FROM ventas
          GROUP BY producto

    En este caso, estamos sumando el total vendido de cada producto, utilizando el CTE que creamos anteriormente.

    El resultado final sería una tabla que muestra el total vendido por producto, agrupado por producto:

    | producto | total_vendido |
    |----------|--------------|
    | producto1| 100          |
    | producto2| 200          |
    | producto3| 50           |
    

    con este ejemplo te explico cómo usar GROUP BY con un CTE.

    Conclusion

    la cláusula GROUP BY para calcular valores agregados en función de otros criterios. En resumen, es una herramienta poderosa para analizar datos en SQL y te permite agrupar registros en sql de los resultados de tus consultas en función de ciertos criterio

    Ahora comentanos como lo usas dentro de tus consultas

    hasta la proxima gracias :D!!

    Enlaces relevantes

    Referencias

    SQL Tutorial (w3schools.com)

    Referencia de Transact-SQL (Motor de base de datos) – SQL Server | Microsoft Learn