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:
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:
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.