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

Coger x valores mas altos

Estas en el tema de Coger x valores mas altos en el foro de Mysql en Foros del Web. Hola, tengo una base de datos que tiene una columna que se llama Nota y otra columna que es el Nombre. Quiero hacer un ranking ...
  #1 (permalink)  
Antiguo 25/08/2010, 02:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 1
Coger x valores mas altos

Hola, tengo una base de datos que tiene una columna que se llama Nota y otra columna que es el Nombre. Quiero hacer un ranking y seleccionar los 5 nombres con las notas más altas.

Gracias
  #2 (permalink)  
Antiguo 25/08/2010, 03:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Coger x valores mas altos

Podría decirte que con esto estaría:
Código MySQL:
Ver original
  1. SELECT nombre, nota FROM tutabla ORDER BY nota DESC LIMIT 5
pero no estaría diciéndote la verdad, pues puede ocurrir que 6 alumnos tuvieran la misma nota más alta y estarías dejando uno fuera.
Código MySQL:
Ver original
  1. SELECT tutabla.nombre, tutabla.nota FROM tutabla INNER JOIN (SELECT nota FROM `tutabla` order by nota desc limit 5)t1 ON tutabla.nota = t1.nota GROUP BY nota, nombre order by tutabla.nota desc, tutabla.nombre
Con esto, creo, encontrarás los alumnos que tienen las 5 notas más altas, sean los que sean.
Pero, ojo, si dos alumnos tienen el mismo nombre y la misma nota más alta, uno de ellos no aparecerá. Por eso sería mejor hacer el group by por nota e idalumno

Última edición por jurena; 25/08/2010 a las 04:14
  #3 (permalink)  
Antiguo 25/08/2010, 05:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 1
Respuesta: Coger x valores mas altos

Umm entiendo, en cualquier caso siempre existira el problema de dejar a alguien fuera si comparten nota 6 alumnos diferentes, ya que yo solo voy a mostrar a 5 de ellos no?
  #4 (permalink)  
Antiguo 25/08/2010, 11:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Coger x valores mas altos

Aledis,
la segunda consulta te ofrecerá todos los alumnos que tengan las 5 primeras notas y aquellos que tengan la misma nota que el último de esos 5. No serán siempre 5, sino unas veces 5 y otras más, pero no dejarás a nadie fuera si tiene la misma nota que el 5. De eso se trata, ¿no?
Si vas a mostrar 5 de ellos siempre, te bastará con al primera consulta, aunque no sea justa, pues ocultará a otros que tienen esa misma nota.
  #5 (permalink)  
Antiguo 30/08/2010, 02:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 15
Antigüedad: 14 años
Puntos: 1
Respuesta: Coger x valores mas altos

Muchas gracias por tu respuesta, me ha sido de gran utilidad

Etiquetas: mas, alto
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 16:14.