Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

como mostrar un top de los 5 mejores

Estas en el tema de como mostrar un top de los 5 mejores en el foro de Mysql en Foros del Web. hola amigos como puedo hacer un top en donde muestre los 5 autores mas activos basicamente esta es mi tabla id -- frase --- estatus ...
  #1 (permalink)  
Antiguo 21/05/2012, 10:48
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
como mostrar un top de los 5 mejores

hola amigos como puedo hacer un top en donde muestre los 5 autores mas activos

basicamente esta es mi tabla

id -- frase --- estatus -- autor
1 ---- xxxx -- 1 - ---- juan
2 --- xxxx --- 1 ----- pepe
3 --- xxxx -- 1 ---- juan


entonces listado

juan --- 2
pepe --- 1

espero me entiendan gracias
  #2 (permalink)  
Antiguo 21/05/2012, 11:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: como mostrar un top de los 5 mejores

Todo lo puedes lograr con un solo query, algo así
Código MySQL:
Ver original 
Con eso te mostrará en de mayor a menor los 5 de mayor estatus, digo eso es lo que entiendo que 2 y 1 es por estatus.

Edito, me di cuenta ahora de que es lo que hacer, en todo caso sigue siendo una consulta lo único que tienes que hacer es algo como
Código MySQL:
Ver original
  1. SELECT MAX(*) counter, * FROM table GROUP BY autor ORDER BY counter DESC LIMIT 5
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/05/2012, 13:25
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como mostrar un top de los 5 mejores

amigo gracias por responder pero un no funciona estoy tratando con la sql


SELECT MAX(*) counter, * FROM estados GROUP BY estados.autor ORDER BY counter DESC LIMIT 5
  #4 (permalink)  
Antiguo 21/05/2012, 13:35
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: como mostrar un top de los 5 mejores

Hola charlescuellar:

Para este caso, la función de agrupación que debes utilizar es COUNT, la cual cuenta el número de repeticiones de la condición. La función MAX obtiene el valor máximo para cada agrupación.

Prueba así:

Código MySQL:
Ver original
  1. select autor, count(autor) total
  2. from tu_tabla
  3. group by autor

Haz la prueba y nos comentas.

Saludos
Leo.
  #5 (permalink)  
Antiguo 21/05/2012, 13:44
 
Fecha de Ingreso: abril-2008
Mensajes: 310
Antigüedad: 16 años
Puntos: 4
Respuesta: como mostrar un top de los 5 mejores

leonardo_josue gracias creo q ya qdo la unica duda es el order by 2 porq 2?
  #6 (permalink)  
Antiguo 21/05/2012, 14:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: como mostrar un top de los 5 mejores

Hola de nuevo charlescuellar:

Si lees en la documentación acerca de la sintaxis del SELECT

http://dev.mysql.com/doc/refman/5.0/es/select.html

encontrarás que la Sección ORDER BY tiene tres formas:

Código:
ORDER BY {col_name | expr | position}
Esto quiere decir que puedes poner el nombre del campo por el que quieres ordenar, una expresión válida o LA POSICIÓN en el select del campo por el que quieres ordenar...

Código:
SELECT autor, count(autor) total.... ORDER by 2
sería lo mismo a poner

Código:
SELECT autor, count(autor) total.... ORDER by total
Saludos
Leo.

Etiquetas: ranking, top
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:31.