Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2013, 09:12
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: SUM o GROUP BY?

Cita:
Si uso el SUM(tbl_result.result_points) me devuelve un unico resistro,
Por supuesto que te devolverá sólo uno, si no agrupas de alguna forma. Precisamente por eso tanto SUM(), como AVG(), MAX(), MIN() y otras son lo que se denomina "funciones agrupadas", "de agrupamiento" o "modificadoras de GRoUP BY".
De hecho, no puedes usarla sobre una columna si en el SELECT estás invocando más de una columna no afectada por funciones.
Es decir, es obligatorio el uso de GROUP BY en condiciones como:
Código MySQL:
Ver original
  1. SELECT a, b, SUM(c)
  2. FROM...
La única distinción que existen referida a MySQL es que este DBMS admite que no agrupe por todas las columnas no afectadas, y además permite hacer agrupamientos sobre columnas no listadas en el SELECT:
Código MySQL:
Ver original
  1. SELECT a, b, SUM(c)
  2. FROM...
  3. ...


Código MySQL:
Ver original
  1. SELECT a, b, SUM(c)
  2. FROM...
  3. ...

Pero hay que tener cuidado con eso, porque en esos casos MySQL devolverá, en la columna donde no se aplique función y se indique en el GROUP BY el valor del primer registro que encuentre que cumpla con el GROUP BY.
¿Se entiende esto último?

Eso puede causar respuestas inesperadas en ciertos casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)