El primero con el último
- O(n²) · Muy difícil
- Plan completo
- SQL
- ventanas
- uniones
- agrupar
Enunciado
La tutora arma parejas de estudio con la lista de promedios en la mano: quien tiene el más alto se sienta con quien tiene el más bajo, el segundo con el penúltimo, y así hacia el centro de la lista.
El promedio de cada quien es el de sus notas ya puestas. Una nota pendiente no cuenta, y quien no tiene ninguna nota puesta no entra en el reparto. Lucas y Emma tienen el mismo promedio: entre dos iguales va antes en la lista quien va antes por orden alfabético.
Muestra una fila por pareja, con el nombre de quien va más arriba en la lista y el de su compañero, en ese orden y por orden alfabético del primer nombre. Si la lista es impar, quien queda en el centro no tiene con quién sentarse: sale en su propia fila, con la segunda casilla vacía.
Lo que tiene que devolver
Estas filas, en este orden
| nombre | pareja |
|---|---|
| Emma | Lucas |
| Hugo | Julia |
| Martina | Leo |
Es lo que sale con los datos de la base de práctica del reto. Los nombres de las columnas no cuentan, las tuyas pueden llamarse como quieras: cuenta cuántas son y en qué orden van. Además de esta, el reto tiene pruebas ocultas con otros datos, que se revelan al enviar tu solución.
Empiezas con esto
SQL
SELECT e.nombre,
AVG(n.nota) AS promedio
FROM notas n
JOIN estudiantes e
ON n.estudiante_id = e.id
GROUP BY e.id, e.nombre
ORDER BY promedio DESCSe abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.
Más retos de O(n²)
- El tercer selloSQL · ventanas · uniones · fechas
- Empezar por abajoSQL · modificar datos · subconsultas
- Empezaste con un TecladoSQL · ventanas · uniones
- Enero fuera de casaSQL · fechas · nulos · agrupar
- Faro, ElSQL · textos · condicionales · ordenar
- Hoy se vendió como nuncaSQL · ventanas · agrupar · subconsultas