Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 2.25 KB

lesson6.md

File metadata and controls

42 lines (34 loc) · 2.25 KB
  • Показать информацию по потокам. В отчет вывести номер потока, название курса и дату начала занятий.
  • Найти общее количество учеников для каждого курса. В отчет вывести название курса и количество учеников по всем потокам курса.
  • Найти среднюю оценку по всем потокам для всех учителей. В отчет вывести идентификатор, фамилию и имя учителя, среднюю оценку по всем проведенным потокам. Учителя, у которых не было потоков, также должны попасть в выборку.
  • Дополнительное задание. Для каждого преподавателя выведите имя, фамилию, минимальное значение успеваемости по всем потокам преподавателя, название курса, который соответствует потоку с минимальным значением успеваемости, максимальное значение успеваемости по всем потокам преподавателя, название курса, соответствующий потоку с максимальным значением успеваемости, дату начала следующего потока.
.open teachers.db
.header on
.mode column
.schema
.tables

SELECT number, name, started_at
	FROM courses
	JOIN training_groups
		ON courses.id = training_groups.course_id;

SELECT name as course_name, SUM(students_amount) as students_amount
	FROM training_groups
	JOIN courses
		ON courses.id = training_groups.course_id
GROUP BY name;

SELECT id, surname, name, AVG(progress.grade) as avg_grade
	FROM progress 
	LEFT JOIN teachers
		ON teachers.id = progress.teacher_id
GROUP BY teacher_id;

SELECT teachers.name, surname, MIN(progress.grade) as min_grade, courses.name
FROM teachers 
	LEFT JOIN progress
	ON teachers.id = progress.stream_id
	LEFT JOIN courses
	ON courses.id = progress.stream_id
GROUP BY surname;

.quit