У меня есть 2 вопроса относительно запросов sqlite3 с использованием 2 таблиц

#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. Вы спасли положение. Спасибо!