¿Cómo se vincula una manija al clasificar los resultados en una consulta de mysql? He simplificado los nombres de tablas y columnas en este ejemplo, pero debería ilustrar mi problema:¿Cómo manejo los vínculos al clasificar los resultados en MySQL?
SET @rank=0;
SELECT student_names.students,
@rank := @rank +1 AS rank,
scores.grades
FROM student_names
LEFT JOIN scores ON student_names.students = scores.students
ORDER BY scores.grades DESC
así que imagina la produce la consulta anterior:
Students Rank Grades
=======================
Al 1 90
Amy 2 90
George 3 78
Bob 4 73
Mary 5 NULL
William 6 NULL
A pesar de que Al y Amy tienen el mismo grado, uno se clasifica más alto que el otro. Amy fue estafado. ¿Cómo puedo hacerlo para que Amy y Al tengan el mismo ranking, para que ambos tengan un rango de 1. Además, William y Mary no tomaron el examen? Empacaron clase y fumaban en la habitación de los niños. Deberían estar atados por el último lugar.
La clasificación correcta debe ser:
Students Rank Grades
========================
Al 1 90
Amy 1 90
George 2 78
Bob 3 73
Mary 4 NULL
William 4 NULL
Si alguien tiene algún consejo, por favor hágamelo saber.
Hi OMG Ponies, ¡¡Eres el Terminador de MySQL !! Impresionante, muchas gracias por la ayuda. Nunca lo hubiera averiguado. (Mi conocimiento SQL es básico, así que tendré que estudiar su respuesta para entenderlo mejor). Además, me encanta su nombre de usuario. ¡¡¡De nuevo, GRACIAS !!! -Laxmidi – Laxmidi
"Puedes usar una combinación cruzada (en MySQL, una UNIÓN INTERNA sin ningún criterio) para declarar y usar una variable sin usar una declaración SET por separado". Maldita sea, no tenía idea de que pudieras hacer esto. +1 – heisenberg
Votaría esto de nuevo si pudiera. Espectacular. – duffymo