MySQL - CONSULTA SUPER COMPLICADA ORDENAR RANKING

 
Vista:
sin imagen de perfil

CONSULTA SUPER COMPLICADA ORDENAR RANKING

Publicado por ANTONIO (33 intervenciones) el 20/08/2013 22:26:41
Saludos amigos tengo que hacer una consulta mysql y no se ni como cogerla de lo complicada que es vereis:
Imaginad una prueba deportiva donde van entrando corredores a meta, si por ejemplo han entrado 10 personas y cada una tiene su tiempo de llegada a meta ¿como puedo listar las ultimas 5 personas que han entrado a meta y saber en la posición en que han entrado en orden descendente?
01:12:22
01:13:23
01:14:12
01:15:23
01:16:25
01:22:12
01:23:56
01:46:55
01:54:23
02:00:12

yo quiero hacer un listado en el cual el listado sea capaz de sacarme el puesto que ha hecho de entrada ordenado de forma descendente y siempre los cinco ultimos es decir quedaría asi el resutlado de la constulta:

10º 02:00:12
9º 01:54:23
8º 01:46:55
7º 01:23:56
6º 01:22:12


Es decier lo quiero hacer asi y que la consulta sea capaz de sacarme el puesto que ocupa según el tiempo de entrada.

Saludos amigos se que esta consulta debe de ser super complicada pero echadme un cable .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jose maria

CONSULTA SUPER COMPLICADA ORDENAR RANKING

Publicado por Jose maria (1 intervención) el 21/08/2013 01:46:20
Hola ANTONIO:

De la misma forma que utilizamos el orden ascendente (ASC) en MySQL podemos hacerlo descendente (DESC)
1
SELECT a, COUNT(b) FROM test_table GROUP BY a DESC


Si recorremos la tabla mediante while, no es complicado generar un contador descendente para insertar, además de los tiempos, la posición de cada uno de ellos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

CONSULTA SUPER COMPLICADA ORDENAR RANKING

Publicado por ANTONIO (33 intervenciones) el 21/08/2013 10:08:09
Bueno gracias por la respuesta jose maria pero no queria hacer un bucle luego con el while sino que con la misma consulta mysql que me lo generara y ya lo he conseguido, aqui tienes la consulta :

SELECT RA.POSICION,ra.nom_cor,ra.meta,ra.timemeta,ra.descalificado FROM results TT,(SELECT @i:=@i+1 AS POSICION, T.* FROM results T,(SELECT @i:=0) foo WHERE ISNULL(t.DESCALIFICADO) AND NOT ISNULL(t.META) and t.meta<>'00:00:00' and SUBSTRING(t.meta, 1, 1)<>'-' ORDER BY TIMEMETA ASC ) RA WHERE RA.id=TT.ID ORDER BY RA.POSICION DESC LIMIT 25



Saludos y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar