#sqlite
#sqlite
Вопрос:
A) Перечислите каждого лектора вместе с каждым модулем, который они преподают, и количеством студентов, изучающих этот модуль, в порядке имени лектора.
Б) Выведите количество модулей, в которых каждый прошел модуль (предполагая, что проходной балл равен 40).
Ответ №1:
Для A вам нужно объединить 2 таблицы, а затем group by lecturer, module
и подсчитать количество строк для каждой группы (каждая строка соответствует студенту):
select t.lecturer, t.module, count(*) numberofstudents
from teaches t inner join studies s
on s.module = t.module
group by t.lecturer, t.module
order by t.lecturer
Для B используйте NOT EXISTS
, чтобы найти модули, в которых указаны все оценки >= 40
, и подсчитать их:
select count(distinct module) numberofmodules
from studies s
where not exists (
select 1 from studies
where module = s.module and grade < 40
)
Комментарии:
1. Вы спасли положение. Спасибо!