Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/04/2011, 15:20
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Se puede hacer un ORDER BY por cantidad de registros iguales?

Hola Camarex:

Lo que tienes que hacer es un COUNT agrupando por el campo color, al final sólo tendrías que ordenar por el campo count, quedaría así;


Código MySQL:
Ver original
  1. mysql> create table colores (color varchar(10));
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> insert into colores values ('rojo'), ('rojo'), ('azul'), ('rojo'), ('verd
  5. e'), ('azul');
  6. Query OK, 6 rows affected (0.03 sec)
  7. Records: 6  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> select * from colores;
  10. +-------+
  11. | color |
  12. +-------+
  13. | rojo  |
  14. | rojo  |
  15. | azul  |
  16. | rojo  |
  17. | verde |
  18. | azul  |
  19. +-------+
  20. 6 rows in set (0.00 sec)
  21.  
  22. mysql> select color, count(*) total from colores group by 1 order by 2 desc;
  23. +-------+-------+
  24. | color | total |
  25. +-------+-------+
  26. | rojo  |     3 |
  27. | azul  |     2 |
  28. | verde |     1 |
  29. +-------+-------+
  30. 3 rows in set (0.00 sec)
  31.  
  32. mysql> select color from (
  33.     -> select color, count(*) total from colores group by color) T
  34.     -> order by total desc;
  35. +-------+
  36. | color |
  37. +-------+
  38. | rojo  |
  39. | azul  |
  40. | verde |
  41. +-------+
  42. 3 rows in set (0.00 sec)

La primer consulta te regresa dos campos, uno con el color y otro con el número de veces que se repite ese color. En el segundo caso hago una subconsulta para extraer sólo el campo color pero en el orden deseado. Creo que cualquiera de las dos consultas te debe. Haz la prueba y nos comentas

Saludos
Leo