Last active
April 4, 2025 00:36
Revisions
-
eduardogpg revised this gist
Apr 4, 2025 . 1 changed file with 193 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -68,3 +68,196 @@ INSERT INTO enrollments (id, student_id, course_id, grade) VALUES - Listar los estudiantes que están matriculados en el curso 'Database Systems'. - Listas los cursos que tienen al menos un estudiante con una calificación mayor a 90. - Listar los estudiantes que están matriculados en todos los cursos que 'Alice Johnson' está matriculada. - Obtener el nombre de todos los estudiantes con más de un curso. SELECT name FROM students WHERE id IN ( SELECT student_id FROM enrollments GROUP BY student_id HAVING COUNT(*) > 1 ); -- Obtener el nombre de todos los estudiantes del curso 'Introduction to Programming' SELECT name FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE course_id IN ( SELECT id FROM courses WHERE courses.title = 'Python' ) ); -- ALL - ANY (IN - NOT IN) -- Obtener los cursos con menos de 3 estudiantes matriculados. SELECT title FROM COURSES WHERE id IN( SELECT course_id FROM enrollments GROUP BY course_id HAVING COUNT(*) < 3 ); -- Obtener el nombre de todos los estudiantes cuyo promedio de notas es mayor que el promedio. SELECT name FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE grade > ( SELECT AVG(grade) FROM enrollments ) ); -- Obtener los cursos en los que está matriculada 'Alice Johnson'. SELECT title FROM courses WHERE id IN ( SELECT course_id FROM enrollments WHERE student_id IN ( SELECT id from students WHERE name = 'Alice Johnson' ) ); -- Obtener los estudiantes matriculados en los mismos cursos que 'Bob Smith'. SELECT name FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE course_id IN ( SELECT course_id FROM enrollments WHERE student_id IN ( SELECT id from students WHERE name = 'Bob Smith' ) ) ) AND id <> (SELECT id from students WHERE name = 'Bob Smith') -- Obtener el nombre de todos los estudiantes con un grado mayor a 90. SELECT name FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE grade > 90 ) -- Obtener el nombre del curso con menor cantidad de usuarios registrados. SELECT title FROM courses INNER JOIN ( SELECT course_id, COUNT(*) AS total FROM enrollments GROUP BY course_id ORDER BY total LIMIT 1 ) AS last_course ON courses.id = last_course.course_id; SELECT title FROM courses WHERE id IN ( SELECT course_id FROM ( SELECT course_id, COUNT(*) AS total FROM enrollments GROUP BY course_id ORDER BY total LIMIT 1 ) as A ); -- Listas los estudiantes no matriculados en ningún curso. SELECT name FROM students -- main WHERE EXISTS ( SELECT 1 FROM enrollments -- WHERE enrollments.student_id = students.id ); -- Listar los estudiantes quienes están matriculados en al menos un curso. SELECT name FROM students -- main WHERE EXISTS ( SELECT 1 FROM enrollments -- WHERE enrollments.student_id = students.id ); -- Listar los estudiantes que están matriculados en el curso 'Database Systems'. SELECT name FROM students -- main WHERE EXISTS ( SELECT 1 FROM enrollments INNER JOIN courses ON enrollments.course_id = courses.id AND courses.title = 'Database Systems' WHERE enrollments.student_id = students.id ); -- Listar los cursos que tienen al menos un estudiante con una calificación mayor a 90. SELECT title FROM courses WHERE EXISTS ( SELECT 1 FROM enrollments WHERE courses.id = enrollments.course_id AND grade > 90 ); -- Listar los estudiantes que están matriculados en todos los cursos que 'Alice Johnson' está matriculada. SELECT name FROM students WHERE EXISTS ( SELECT 1 FROM ( SELECT student_id FROM enrollments WHERE course_id IN ( SELECT course_id FROM enrollments WHERE student_id IN ( SELECT id from students WHERE name = 'Alice Johnson' -- 1 ) ) ) AS b WHERE students.id = b.student_id ) AND id NOT IN ( SELECT id from students WHERE name = 'Alice Johnson' -- 1 ); --- UNION and UNION ALL SELECT name, 1, 2, 3 as final_column FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE grade > 90 ) UNION ALL SELECT name, 5, 6, 7 as final_field FROM students WHERE id IN ( SELECT student_id FROM enrollments WHERE grade < 70 ) UNION ALL SELECT 'CODY', 10, 20, 30 UNION ALL SELECT 'CODY', 10, 20, 30; -
eduardogpg revised this gist
Apr 1, 2025 . 1 changed file with 18 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -50,3 +50,21 @@ INSERT INTO enrollments (id, student_id, course_id, grade) VALUES (8, 4, 105, 72.0), (9, 5, 101, 95.0), (10, 5, 104, 89.5); - Obtener el nombre de todos los estudiantes con más de un curso. - Obtener los cursos con menos de 3 estudiantes matriculados. - Obtener el nombre de todos los estudiantes cuyo promedio de notas es mayor que el promedio. - Obtener los cursos en los que está matriculada 'Alice Johnson'. - Obtener los estudiantes matriculados en los mismos cursos que 'Bob Smith'. - Obtener los cursos con estudiantes que tienen promedios de notas superiores a 85. - Obtener los estudiantes que obtuvieron el mejor promedio en 'Database Systems'. - Obtener el nombre de todos los estudiantes con un grado mayor a 90. - Obtener el nombre del cursos con menor cantidad de usuarios registrados. - Listas los estudiantes no matriculados en ningún curso. - Listas los estudiantes quienes están matriculados en al menos un curso. - Listar los estudiante quienes no están matriculados a ningún curso. - Listar los estudiantes que están matriculados en el curso 'Database Systems'. - Listas los cursos que tienen al menos un estudiante con una calificación mayor a 90. - Listar los estudiantes que están matriculados en todos los cursos que 'Alice Johnson' está matriculada. -
eduardogpg created this gist
Apr 1, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,52 @@ CREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(100), age INT, enrollment_year INT ); CREATE TABLE enrollments ( id INT PRIMARY KEY, student_id INT, course_id INT, grade FLOAT, FOREIGN KEY (student_id) REFERENCES students(id), FOREIGN KEY (course_id) REFERENCES courses(id) ); CREATE TABLE courses ( id INT PRIMARY KEY, title VARCHAR(100), credits INT ); INSERT INTO students (id, name, age, enrollment_year) VALUES (1, 'Alice Johnson', 20, 2021), (2, 'Bob Smith', 22, 2020), (3, 'Clara Lee', 21, 2021), (4, 'Daniel Kim', 23, 2019), (5, 'Eva Brown', 22, 2020), (6, 'John', 20, 2021), (7, 'Claude', 22, 2022), (8, 'Daniel', 21, 2023), (9, 'Rose', 23, 2022), (10, 'Devin', 22, 2024); INSERT INTO courses (id, title, credits) VALUES (101, 'Introduction to Programming', 3), (102, 'Database Systems', 4), (103, 'Data Structures', 3), (104, 'Operating Systems', 4), (105, 'Computer Networks', 3); INSERT INTO enrollments (id, student_id, course_id, grade) VALUES (1, 1, 101, 88.5), (2, 1, 102, 91.0), (3, 2, 101, 76.0), (4, 2, 103, 82.0), (5, 3, 104, 85.5), (6, 3, 105, 90.0), (7, 4, 102, 65.0), (8, 4, 105, 72.0), (9, 5, 101, 95.0), (10, 5, 104, 89.5);