varios sumar repetidos registros promedio funciones ejemplos consultas campos agrupar agrupamiento agrupadas sql group-by

repetidos - sql agrupar y sumar



Usando group by en mĂșltiples columnas (2)

La cláusula GROUP BY se usa junto con las funciones agregadas para agrupar el conjunto de resultados por una o más columnas. p.ej:

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name;

Recuerda este orden:

1) SELECT (se usa para seleccionar datos de una base de datos)

2) FROM (la cláusula se usa para listar las tablas)

3) DONDE (la cláusula se usa para filtrar registros)

4) GROUP BY (la cláusula se puede usar en una declaración SELECT para recopilar datos en varios registros y agrupar los resultados por una o más columnas)

5) HAVING (la cláusula se usa en combinación con la cláusula GROUP BY para restringir los grupos de filas devueltas solo a aquellos cuya condición es VERDADERA)

6) ORDENAR POR (la palabra clave se usa para ordenar el conjunto de resultados)

Puede usar todo esto si está usando funciones agregadas, y este es el orden en el que deben establecerse, de lo contrario puede obtener un error.

Las funciones agregadas son:

MIN devuelve el valor más pequeño en una columna dada

SUM devuelve la suma de los valores numéricos en una columna dada

AVG devuelve el valor promedio de una columna dada

COUNT devuelve el número total de valores en una columna dada

COUNT (*) devuelve el número de filas en una tabla

Entiendo el punto de GROUP BY x

Pero, ¿cómo funciona GROUP BY x, y , y qué significa?


Group By X significa poner todos los que tienen el mismo valor para X en un grupo .

Group By X, Y significa poner todos los que tienen los mismos valores para X e Y en un grupo .

Para ilustrar usando un ejemplo, digamos que tenemos la siguiente tabla, para ver con quién asiste a qué asignatura en una universidad:

Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 1 John ITB001 1 Bob ITB001 1 Mickey ITB001 2 Jenny ITB001 2 James MKB114 1 John MKB114 1 Erica

Cuando usa un group by en la columna de asunto; decir:

select Subject, Count(*) from Subject_Selection group by Subject

Obtendrá algo como:

Subject Count ------------------------------ ITB001 5 MKB114 2

... porque hay 5 entradas para ITB001 y 2 para MKB114

Si tuviéramos que group by dos columnas:

select Subject, Semester, Count(*) from Subject_Selection group by Subject, Semester

obtendríamos esto:

Subject Semester Count ------------------------------ ITB001 1 3 ITB001 2 2 MKB114 1 2

Esto se debe a que, cuando agrupamos por dos columnas, dice "Agrupelas de modo que todas las personas con el mismo tema y semestre estén en el mismo grupo, y luego calculen todas las funciones agregadas (conteo, suma, promedio, etc.). ) para cada uno de esos grupos " . En este ejemplo, esto se demuestra por el hecho de que, cuando los contamos, hay tres personas haciendo ITB001 en el semestre 1 y dos en el semestre 2. Ambas personas que hacen MKB114 están en el semestre 1, por lo que no hay fila para el semestre 2 (no se incluyen datos en el grupo "MKB114, semestre 2")

Esperemos que tenga sentido.