Encuentra a los 100 mejores estudiantes
Calentamiento · aggregation, joins, sorting
Dadas 3 tablas, students(id, name), courses(id, name), grades(id, course_id, student_id, grade),
encuentra a los 100 mejores estudiantes según su nota media, ordenados de forma descendente por
la nota media. Si varios estudiantes tienen la misma media, ordénalos por nombre de forma
ascendente. Devuelve las columnas (name, average_grade).
Columnas esperadas
name, average_grade
Pistas
Pista 1: una fila por estudiante
Une students con grades mediante students.id = grades.student_id y agrupa con GROUP BY students.id. AVG(grades.grade) da entonces una media por estudiante. SHOW INDEX FROM grades muestra cuáles de esas columnas de unión están indexadas.
Pista 2: el desempate
ORDER BY average_grade DESC, name ASC y después LIMIT 100. Sin la segunda clave de orden, los estudiantes con la misma media salen en un orden arbitrario.