Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/08/2011, 14:51
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Sumar registros no duplicados usando DISTINCT en MySQL

Hola ozcarcalle

Si te hubieras tomado 5 minutos para leer la documentación de mySQL podrías encontrar que la sintaxis para la función SUM es

Código:
SUM([DISTINCT] expr)
Es decir, dentro del sum es donde se indica la palabra DISTINCT para indicar que no contabilice registros duplicados.

Aquí hay un ejemplo completo de su utilización:

Código MySQL:
Ver original
  1. mysql> INSERT INTO TuTabla VALUES (1), (1), (2), (2), (3);
  2. Query OK, 5 rows affected (0.03 sec)
  3. Records: 5  Duplicates: 0  Warnings: 0
  4.  
  5. mysql> SELECT * FROM TuTabla;
  6. +-------+
  7. | campo |
  8. +-------+
  9. |     1 |
  10. |     1 |
  11. |     2 |
  12. |     2 |
  13. |     3 |
  14. +-------+
  15. 5 rows in set (0.00 sec)
  16.  
  17. mysql> SELECT DISTINCT campo FROM TuTabla;
  18. +-------+
  19. | campo |
  20. +-------+
  21. |     1 |
  22. |     2 |
  23. |     3 |
  24. +-------+
  25. 3 rows in set (0.00 sec)
  26.  
  27. mysql> SELECT SUM(campo) FROM TuTabla;
  28. +------------+
  29. | SUM(campo) |
  30. +------------+
  31. |          9 |
  32. +------------+
  33. 1 row in set (0.00 sec)
  34.  
  35. mysql> SELECT SUM(DISTINCT campo) FROM TuTabla;
  36. +---------------------+
  37. | SUM(DISTINCT campo) |
  38. +---------------------+
  39. |                   6 |
  40. +---------------------+
  41. 1 row in set (0.00 sec)

Saludos
Leo.