varios promedio por numero funciones empleados ejemplos ejemplo departamento consultas campos agrupamiento agrupadas agregacion sql mysql group-by aggregate

sql - promedio - ¿Alguna razón para la cláusula GROUP BY sin función de agregación?



promedio en sql ejemplo (5)

Estoy (a fondo) aprendiendo SQL en este momento y encontré la cláusula GROUP BY .

GROUP BY agrega o agrupa el conjunto de resultados de acuerdo con los argumentos que le da. Si utiliza esta cláusula en una consulta, puede realizar funciones agregadas en el conjunto de resultados para encontrar información estadística en el conjunto de resultados, como los promedios de localización (AVG()) o la frecuencia (COUNT()) .

Mi pregunta es: ¿es la instrucción GROUP BY de alguna manera útil sin una función agregada de acompañamiento?

Actualizar utilizando GROUP BY como sinónimo de DISTINCT es (probablemente) una mala idea porque sospecho que es más lento.


¿Es la instrucción GROUP BY de alguna manera útil sin una función agregada que la acompañe?

El uso de DISTINCT sería un sinónimo en tal situación, pero la razón por la que querría / tendría que definir una cláusula GROUP BY sería para poder definir los detalles de la cláusula HAVING .

Si necesita definir una cláusula HAVING , debe definir una GROUP BY : no puede hacerlo junto con DISTINCT .


Grupo por lata utilizado de dos maneras mayoritariamente.
1) en conjunción con las funciones de agregación de SQL
2) para eliminar filas duplicadas de un conjunto de resultados

Por lo tanto, la respuesta a su pregunta se encuentra en la segunda parte de los EEU descritos anteriormente.


Puede realizar una selección DISTINCT utilizando GROUP BY sin AGREGADOS .


Se utiliza para más funciones de agregación.

Por ejemplo, considere el siguiente código:

SELECT product_name, MAX(''last_purchased'') FROM products GROUP BY product_name

Esto devolverá solo 1 resultado por producto, pero con el último valor actualizado de esos registros.


Nota: todo lo que sigue a continuación solo se aplica a MySQL

GROUP BY tiene la guaranteed de devolver los resultados en orden, DISTINCT no lo es.

GROUP BY junto con ORDER BY NULL es de la misma eficiencia que DISTINCT (y se implementa de la misma manera). Si hay un índice en el campo que se agrega (o se distingue), ambas cláusulas usan un escaneo de índice suelto sobre este campo.

En GROUP BY , puede devolver expresiones no agrupadas y no agregadas. MySQL seleccionará cualquier valor aleatorio del grupo correspondiente para calcular la expresión.

Con GROUP BY , puede omitir las expresiones GROUP BY de la cláusula SELECT . Con DISTINCT , no puedes. Se garantiza que cada fila devuelta por un DISTINCT es única.