requests.sql 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. -- Список студентов указанной группы
  2. SELECT s.last_name, s.first_name, g.group_name
  3. FROM students s
  4. JOIN groups g ON s.group_id = g.group_id
  5. WHERE g.group_name = 'ИВТ-21';
  6. -- Количество студентов в каждой группе
  7. SELECT g.group_name, COUNT(*) AS student_count
  8. FROM students s
  9. JOIN groups g ON s.group_id = g.group_id
  10. GROUP BY g.group_name;
  11. -- Список преподавателей кафедры
  12. SELECT t.last_name, t.first_name, d.department_name
  13. FROM teachers t
  14. JOIN departments d ON t.department_id = d.department_id
  15. WHERE d.department_name = 'Кафедра программирования';
  16. -- Преподаватели с зарплатой выше 100000
  17. SELECT last_name, first_name, salary
  18. FROM teachers
  19. WHERE salary > 100000;
  20. -- Список студентов, сдавших экзамен на отлично
  21. SELECT s.last_name, s.first_name, d.discipline_name
  22. FROM exams e
  23. JOIN students s ON s.student_id = e.student_id
  24. JOIN disciplines d ON d.discipline_id = e.discipline_id
  25. WHERE e.grade = 5;
  26. -- Средний балл студентов
  27. SELECT
  28. s.last_name,
  29. s.first_name,
  30. ROUND(AVG(e.grade), 2) AS average_grade
  31. FROM students s
  32. JOIN exams e ON s.student_id = e.student_id
  33. GROUP BY s.student_id;
  34. -- Студенты, не сдавшие экзамен
  35. SELECT DISTINCT
  36. s.last_name,
  37. s.first_name
  38. FROM students s
  39. JOIN exams e ON s.student_id = e.student_id
  40. WHERE e.grade = 2;
  41. -- Количество экзаменов по дисциплинам
  42. SELECT
  43. d.discipline_name,
  44. COUNT(*) AS exams_count
  45. FROM exams e
  46. JOIN disciplines d ON d.discipline_id = e.discipline_id
  47. GROUP BY d.discipline_name;
  48. -- Список дисциплин по семестрам
  49. SELECT d.discipline_name, s.semester_number
  50. FROM disciplines d
  51. JOIN teaching_assignments ta
  52. ON d.discipline_id = ta.discipline_id
  53. JOIN semesters s
  54. ON s.semester_id = ta.semester_id;
  55. -- Общая нагрузка преподавателей
  56. SELECT
  57. t.last_name,
  58. t.first_name,
  59. SUM(
  60. ta.lecture_hours +
  61. ta.practice_hours +
  62. ta.lab_hours
  63. ) AS total_hours
  64. FROM teachers t
  65. JOIN teaching_assignments ta
  66. ON t.teacher_id = ta.teacher_id
  67. GROUP BY t.teacher_id;
  68. -- Преподаватели, ведущие более одной дисциплины
  69. SELECT
  70. t.last_name,
  71. t.first_name,
  72. COUNT(DISTINCT ta.discipline_id) AS disciplines_count
  73. FROM teachers t
  74. JOIN teaching_assignments ta
  75. ON t.teacher_id = ta.teacher_id
  76. GROUP BY t.teacher_id
  77. HAVING COUNT(DISTINCT ta.discipline_id) > 1;
  78. -- Количество студентов по факультетам
  79. SELECT
  80. f.faculty_name,
  81. COUNT(s.student_id) AS student_count
  82. FROM faculties f
  83. JOIN groups g ON f.faculty_id = g.faculty_id
  84. JOIN students s ON g.group_id = s.group_id
  85. GROUP BY f.faculty_name;
  86. -- Студенты с повышенной стипендией
  87. SELECT
  88. last_name,
  89. first_name,
  90. scholarship
  91. FROM students
  92. WHERE scholarship >= 15000
  93. ORDER BY scholarship DESC;