SQL: cláusula GROUP BY

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQL: cláusula GROUP BY

Este tutorial de SQL explica cómo usar SQL Cláusula GROUP BY Con sintaxis y ejemplos.

describir

La cláusula SQL GROUP BY se puede usar en una instrucción SELECT para recopilar datos en varios registros y agrupar los resultados en una o más columnas.

sintaxis

La sintaxis de la cláusula GROUP BY en SQL es:

SELECT expression1, expression2, ... expression_n, 
       aggregate_function (aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n
[ORDER BY expression [ ASC | DESC ]];

parámetro o parámetro

expresión1, expresión2, … expresión_n Expresiones que no están encapsuladas en funciones agregadas y deben incluirse en la cláusula GROUP BY al final de la instrucción SQL. Función_agregada Esta es una función agregada como la función SUM, COUNT, MIN, MAX o AVG. Expresión agregada Esta es la columna o expresión para la que se usará la función agregada. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Estas son las condiciones que se deben cumplir para seleccionar registros. La expresión ORDER BY es opcional. La expresión utilizada para ordenar los registros en el conjunto de resultados. Si se proporcionan varias expresiones, los valores deben estar separados por comas. ASC es opcional. ASC ordena el conjunto de resultados en orden ascendente de expresiones. Este es el comportamiento predeterminado si el proveedor no es ningún modificador. DESC opcional. DESC ordena el conjunto de resultados en orden descendente de expresiones.

Ejemplo de DDL/DML

Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!

Ejemplo: uso de GROUP BY con la función SUM

Veamos cómo usar la cláusula GROUP BY con la función SUM en SQL.

En este ejemplo, tenemos una tabla llamada empleados con los siguientes datos:

ID de empleado apellido nombre salario dept_id
1001 Herrero John 62000 500
1002 anderson simple 57500 500
1003 el Monte Everest Puntilla 71000 501
1004 Horvath Jack 42000 501

Ingrese la siguiente instrucción SQL:

SELECT dept_id, SUM(salary) AS total_salaries
FROM employees
GROUP BY dept_id;

Se seleccionarán 2 registros. Estos son los resultados que deberías ver:

dept_id salario_total
500 119500
501 113000

En este ejemplo, usamos la función SUM para agregar todos los salarios para cada dept_id y alias el resultado de la función SUM como total_salaries. Debido a que dept_id no está encapsulado en la función SUM, debe aparecer en la cláusula GROUP BY.

Ejemplo: uso de GROUP BY con la función COUNT

Veamos cómo usar la cláusula GROUP BY con la función COUNT en SQL.

En este ejemplo, tenemos una tabla llamada productos con los siguientes datos:

ID del Producto nombre del producto categoria ID
1 pera 50
2 plátano 50
3 mandarina 50
4 manzana 50
5 pan de molde 75
6 jamón 25
7 kleenex nulo

Ingrese la siguiente instrucción SQL:

SELECT category_id, COUNT(*) AS total_products
FROM products
WHERE category_id IS NOT NULL
GROUP BY category_id
ORDER BY category_id;

Se seleccionarán 3 registros. Estos son los resultados que deberías ver:

categoria ID productos_totales
25 1
50 4
75 1

En este ejemplo, usamos la función COUNT para contar la cantidad de productos para cada id_categoría y alias el resultado de la función COUNT como total_products. Los excluimos filtrando cualquier valor de category_id en la cláusula WHERE. Debido a que category_id no está encapsulado en la función COUNT, debe aparecer en la cláusula GROUP BY.

Ejemplo: uso de GROUP BY con la función MIN

Veamos a continuación cómo usar la cláusula GROUP BY con la función MIN en SQL.

En este ejemplo, usaremos nuevamente la tabla de empleados con los siguientes datos:

ID de empleado apellido nombre salario dept_id
1001 Herrero John 62000 500
1002 anderson simple 57500 500
1003 el Monte Everest Puntilla 71000 501
1004 Horvath Jack 42000 501

Ingrese la siguiente instrucción SQL:

SELECT dept_id, MIN(salary) AS lowest_salary
FROM employees
GROUP BY dept_id;

Se seleccionarán 2 registros. Estos son los resultados que deberías ver:

dept_id salario mínimo
500 57500
501 42000

En este ejemplo, usamos la función MIN para devolver el salario mínimo para cada dept_id y alias el resultado de la función MIN para el salario mínimo. Debido a que dept_id no está encapsulado en la función MIN, debe aparecer en la cláusula GROUP BY.

Ejemplo: uso de GROUP BY con la función MAX

Finalmente, veamos cómo usar la cláusula GROUP BY con la función MAX.

Usemos la tabla de empleados nuevamente, pero esta vez encuentre el salario más alto para cada dept_id:

ID de empleado apellido nombre salario dept_id
1001 Herrero John 62000 500
1002 anderson simple 57500 500
1003 el Monte Everest Puntilla 71000 501
1004 Horvath Jack 42000 501

Ingrese la siguiente instrucción SQL:

SELECT dept_id, MAX(salary) AS highest_salary
FROM employees
GROUP BY dept_id;

Se seleccionarán 2 registros. Estos son los resultados que deberías ver:

dept_id sueldo mas alto
500 62000
501 71000

En este ejemplo, usamos la función MAX para devolver el salario más alto para cada dept_id y alias el resultado de la función MAX al salario más alto. La columna dept_id debe figurar en la cláusula GROUP BY porque no está incluida en la función MAX.