GROUP BY lname ORDER AL mostrar resultados incorrectos

Esta consulta que he escrito, que enumera los 25 principales en una competencia de ventas, muestra los resultados incorrectos.

Los usuarios no muestran que debería estar muy arriba en la list. ¿Alguna idea de lo que podría ser el problema?

SELECT u.fname, u.lname, SUM(p.point) as points FROM comp_sale s, comp_product p, comp_user u WHERE s.prod_id = p.product_id AND s.sale_id = u.wp_id GROUP BY lname ORDER BY points DESC limit 25 

table comp_user:

 user_id int(11) NO PRI NULL auto_increment fname varchar(255) NO NULL lname varchar(255) NO NULL storename varchar(255) NO NULL city varchar(255) NO NULL phone varchar(255) NO NULL wp_id int(11) NO NULL type varchar(255) NO NULL 

table comp_sale

 prod_id int(11) NO NULL sale_id int(11) NO NULL serial varchar(255) NO NULL 

table comp_product

 product_id int(11) NO PRI NULL auto_increment description varchar(255) NO NULL type varchar(255) NO NULL cylinda_num int(11) NO NULL eel_num int(11) NO NULL point int(11) NO NULL 

Intente usar un estándar ANSI apropiado, GROUP BY

 SELECT u.fname, u.lname, SUM(p.point) as points FROM comp_sale s JOIN comp_product p ON s.prod_id = p.product_id JOIN comp_user u ON s.sale_id = u.wp_id GROUP BY u.fname, u.lname ORDER BY points DESC LIMIT 25 

Además, use uniones explícitas para mayor claridad

Responde mi propia pregunta: No estaba agrupando por fname y lname pero solo lname .

 SELECT fname, lname, SUM(point) as points FROM cylinda_sale s, cylinda_product p, cylinda_user u WHERE s.prod_id = p.product_id AND s.sale_id = u.wp_id GROUP BY lname, fname ORDER BY points DESC limit 25;