Clase 5: Solución a los ejercicios anteriores
27/04/2021 —
Juanse Marquez
Les dejo la solución a los ejercicios de la semana pasada.
Mis conclusiones de estos ejercicios:
- La mayoría de los estudiantes recuerdan bien las sentencias SQL básicas (INSERT, UPDATE, DELETE y SELECT con WHERE y ORDER BY).
- La mayoría de los estudiantes recuerdan bien las funciones de agregación (SUM, AVG, COUNT, MAX, MIN), con GROUP BY, aunque se observan algunas dificultades a la hora de aplicar este conocimiento a ejercicios específicos.
- Muy pocos estudiantes habían visto las consultas SELECT con JOIN.
Por favor, corríjanme si estoy equivocado. Este es el punto de partida sobre el cual comenzaremos a acompañar la construcción de nuevos conocimientos en 3er año.
Ahora sí, les completo las soluciones a los ejercicios anteriores. Los ejercicios 1 a 20 fueron resueltos la clase anterior. Les dejo a continuación la solución a los últimos ejercicios.
/*21: Listado de ciclistas, incluyendo nombre, edad,
equipo y director de equipo.*/
SELECT nombre, edad, ciclistas.equipo, director
FROM ciclistas
JOIN equipos ON ciclistas.equipo=equipos.nombre_equipo;
/*22: Repetir la consulta anterior, pero ordenarlos
alfabéticamente por equipo, y dentro de cada equipo,
ordenarlos por edad de mayor a menor*/
SELECT nombre, edad, equipo, director
FROM ciclistas
JOIN equipos ON equipo=nombre_equipo
ORDER BY equipo, edad DESC;
/*23: Listado de todas las etapas corridas, con número de etapa,
salida, llegada, nombre del ganador, y edad del ganador, ordenado
por este último dato de mayor a menor.*/
SELECT numero_etapa, salida, llegada, nombre, edad
FROM etapas
JOIN ciclistas ON ganador=numero
ORDER BY edad DESC;
/*24: Rehacer la consulta anterior, pero agregando ahora
las etapas que no se corrieron*/
SELECT numero_etapa, salida, llegada, ganador, edad
FROM etapas
LEFT JOIN ciclistas ON ganador=numero
ORDER BY edad DESC;
/*25: ¿Qué edad tiene el ganador más joven?*/
/*Con alias de columna*/
SELECT MIN(edad) as "Edad del más joven"
FROM etapas
JOIN ciclistas on numero=ganador;
/*26: ¿Cómo se llama y a qué equipo pertenece el ganador de la etapa 11?*/
SELECT nombre, equipo
FROM etapas
JOIN ciclistas on ganador=numero
WHERE numero_etapa=11;
Etiquetas: soluciones, clases