SQL | AGRUPAR POR

La declaración GROUP BY en SQL se usa para organizar datos idénticos en grupos con la ayuda de algunas funciones. es decir, si una columna en particular tiene los mismos valores en diferentes filas, organizará estas filas en un grupo.

Puntos importantes:

  • La cláusula GROUP BY se usa con la instrucción SELECT.
  • En la consulta, la cláusula GROUP BY se coloca después de la cláusula WHERE.
  • En la consulta, la cláusula GROUP BY se coloca antes de la cláusula ORDER BY si se usa alguna.

Sintaxis :

SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
ORDER BY column1, column2;

function_name: Name of the function used for example, SUM() , AVG().
table_name: Name of the table.
condition: Condition used.

Tabla de muestra:

Empleado

table

Alumno

Screenshot (54)
Ejemplo:

  • Agrupar por una sola columna : Agrupar por una sola columna significa colocar todas las filas con el mismo valor de solo esa columna en particular en un grupo. Considere la consulta como se muestra a continuación:
    SELECT NAME, SUM(SALARY) FROM Employee 
    GROUP BY NAME;
    

    La consulta anterior producirá el siguiente resultado: Como puede ver en el resultado anterior, las filas con NOMBRES duplicados se agrupan bajo el mismo NOMBRE y su SALARIO correspondiente es la suma del SALARIO de las filas duplicadas. La función SUM() de SQL se usa aquí para calcular la suma.
    table_out

  • Agrupar por varias columnas : agrupar por varias columnas es, por ejemplo, GROUP BY column1, column2 . Esto significa colocar todas las filas con los mismos valores de las columnas column1 y column2 en un grupo. Considere la siguiente consulta:
    SELECT SUBJECT, YEAR, Count(*)
    FROM Student
    GROUP BY SUBJECT, YEAR;
    

    Salida : Como puede ver en la salida anterior, los estudiantes con la misma ASIGNATURA y AÑO se colocan en el mismo grupo. Y aquellos cuyo único SUJETO es igual pero no AÑO pertenecen a grupos diferentes. Así que aquí hemos agrupado la tabla según dos columnas o más de una columna.
    Screenshot (55)

HABER Cláusula

Sabemos que la cláusula WHERE se usa para colocar condiciones en columnas, pero ¿qué pasa si queremos colocar condiciones en grupos?

Aquí es donde entra en uso la cláusula HAVING. Podemos usar la cláusula HAVING para colocar condiciones para decidir qué grupo será parte del conjunto de resultados final. Además, no podemos usar las funciones agregadas como SUM(), COUNT(), etc. con la cláusula WHERE. Así que tenemos que usar la cláusula HAVING si queremos usar alguna de estas funciones en las condiciones.

Sintaxis :

SELECT column1, function_name(column2)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition
ORDER BY column1, column2;

function_name: Name of the function used for example, SUM() , AVG().
table_name: Name of the table.
condition: Condition used.

Ejemplo :

SELECT NAME, SUM(SALARY) FROM Employee 
GROUP BY NAME
HAVING SUM(SALARY)>3000; 

Salida : como puede ver en la salida anterior, solo un grupo de los tres grupos aparece en el conjunto de resultados, ya que es el único grupo donde la suma del SALARIO es mayor que 3000. Por lo tanto, hemos utilizado la cláusula HAVING aquí para colocar esta condición. ya que se requiere que la condición se coloque en grupos, no en columnas.
Screenshot (56)

Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *