Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2009, 16:33
Avatar de Carxl
Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Un ranking con mysql...

Qué tal, sigo en mi lucha con MySql...

Aquí va esta

Resulta que tengo que mostrar un ranking, un top 20 dígamoslo así.

Ese top se saca por la cantidad de visitas que recibe un usuario. La consulta va así:

Código mysql:
Ver original
  1. SELECT ew_promotores.id_promotor, COUNT( * ) AS totalVisitas, url_promotor FROM ew_p_visitas, ew_promotores WHERE ew_p_visitas.id_promotor = ew_promotores.id_promotor AND candidato_id=18 GROUP BY ew_p_visitas.id_promotor ORDER BY totalVisitas DESC

Me arroja registros como estos:

Código:
id_promotor - totalVisitas - url
10 - 1043 - alguien
1 - 13 - otro alguien
11 - 7 - alguno
Ahora viene mi duda, como hago para decir que me traiga la posición del id 1? En este caso sería la posición 2. O decir que me traiga la posición del id 11, en esta caso sería la 3. Sólo debería traer un registro esa consulta (son su respectiva posición), pero trae obvio todos los registros existentes.

Llegué a hacer un contador, pero no supe que mas agregar en el Sql:

Código mysql:
Ver original
  1. SET @row=0;
  2. SELECT (@row:=@row+1) as row, ew_promotores.id_promotor, COUNT( * ) AS totalVisitas, url_promotor FROM ew_p_visitas, ew_promotores WHERE ew_p_visitas.id_promotor = ew_promotores.id_promotor AND candidato_id=18 GROUP BY ew_p_visitas.id_promotor ORDER BY totalVisitas DESC

Alguien tiene una idea??

De antemano gracias!


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com