La declaración GROUP BY en SQL se utiliza 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.
Características
- La cláusula GROUP BY se utiliza con la instrucción SELECT.
- En la consulta, la cláusula GROUP BY se coloca después de la DÓNDE cláusula.
- En la consulta, la cláusula GROUP BY se coloca antes de la ORDEN Cláusula BY si se utiliza.
- En la consulta, la cláusula Group BY se coloca antes de la cláusula Have.
- Coloque la condición en la cláusula de tener.
Sintaxis :
SELECCIONAR columna1, nombre_función(columna2)
DESDE nombre_tabla
DONDE condición
GRUPO POR columna1, columna2
ORDENAR POR columna1, columna2;
Explicación:
eol en pitón
- nombre de la función : Nombre de la función utilizada, por ejemplo, SUM() , AVG().
- nombre de la tabla : Nombre de la tabla.
- condición : Estado: Usado.
Supongamos que tenemos dos tablas. La tabla de muestra de empleados y estudiantes es la siguiente. Después de agregar dos tablas, haremos algunas operaciones específicas para aprender sobre GROUP BY.
Tabla de empleados:
diferencia entre un tigre y un león
CREATE TABLE emp ( emp_no INT PRIMARY KEY, name VARCHAR(50), sal DECIMAL(10,2), age INT );>
Inserte algunos datos aleatorios en una tabla y luego realizaremos algunas operaciones en GROUP BY.
Consulta:
INSERT INTO emp (emp_no, name, sal, age) VALUES (1, 'Aarav', 50000.00, 25), (2, 'Aditi', 60000.50, 30), (3, 'Amit', 75000.75, 35), (4, 'Anjali', 45000.25, 28), (5, 'Chetan', 80000.00, 32), (6, 'Divya', 65000.00, 27), (7, 'Gaurav', 55000.50, 29), (8, 'Isha', 72000.75, 31), (9, 'Kavita', 48000.25, 26), (10, 'Mohan', 83000.00, 33);>
Producción:
Mesa de estudiantes:
Consulta:
CREATE TABLE student ( name VARCHAR(50), year INT, subject VARCHAR(50) ); INSERT INTO student (name, year, subject) VALUES ('Alice', 1, 'Mathematics'), ('Bob', 2, 'English'), ('Charlie', 3, 'Science'), ('David', 1, 'History'), ('Emily', 2, 'Art'), ('Frank', 3, 'Computer Science');> Producción:
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:
Consulta:
SELECT NAME, SUM(SALARY) FROM emp 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 utiliza aquí para calcular la suma.
Agrupar por varias columnas
Agrupar por varias columnas es decir, por ejemplo, GRUPO POR columna1, columna2 . Esto significa colocar todas las filas con los mismos valores de columnas. columna 1 y columna 2 en un grupo. Considere la siguiente consulta:
Consulta:
SELECT SUBJECT, YEAR, Count(*) FROM Student GROUP BY SUBJECT, YEAR;>
Producción:
división de cadenas c++
Producción : Como puede ver en el resultado anterior, los estudiantes con la misma MATERIA y AÑO se ubican en el mismo grupo. Y aquellos cuyo único TEMA es el mismo pero no AÑO pertenecen a grupos diferentes. Entonces aquí hemos agrupado la tabla según dos columnas o más de una columna.
Cláusula HAVING en la cláusula GROUP BY
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 establecer condiciones para decidir qué grupo formará parte del conjunto de resultados final. Además, no podemos utilizar funciones agregadas como SUM(), COUNT(), etc. con la cláusula WHERE. Entonces tenemos que usar la cláusula HAVING si queremos usar alguna de estas funciones en las condiciones.
Sintaxis :
SELECCIONAR columna1, nombre_función(columna2)
DESDE nombre_tabla
DONDE condición
GRUPO POR columna1, columna2
TENER condición
ORDENAR POR columna1, columna2;
Explicación:
- nombre de la función : Nombre de la función utilizada, por ejemplo, SUM() , AVG().
- nombre de la tabla : Nombre de la tabla.
- condición : Estado: Usado.
Ejemplo :
SELECT NAME, SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>3000;>
Producción :
Como puede ver en el resultado 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 como Se requiere que la condición se coloque en grupos, no en columnas.
comando grep en linux