Если у нас есть следующие две таблицы, «учителя» и «классы», как мы используем оператор INNER JOIN для создания финальной таблицы, где
- "teacher1_id" и "teacher2_id" представляют все уникальные комбинации учителей, которые преподавали в одном классе как минимум 2 раза
- "pair_count" представляет количество одинаковых классов, которые "teacher1_id" и "teacher2_id" учили и
- «average_teacher_rating» представляет средний рейтинг тех же классов, которые преподают «teacher1_id» и «teacher2_id»?
Таблица «учителя»
teachers
class_id teacher_id teacher_name class_count
1111 1234 Smith 2
1111 2345 Jones 4
2222 1234 Smith 2
2222 2345 Jones 4
1111 5678 Taylor 2
3333 2345 Jones 4
4444 5678 Taylor 2
4444 2345 Jones 4
таблица "классов"
classes
id class_name rating
1111 Math 60
2222 Biology 70
3333 Psychology 50
4444 Physics 80
5555 Chemistry 30
6666 Economics 60
7777 Computing 70
8888 Statistics 90
И мы хотим, чтобы финальный стол выглядел так:
teacher1_id teacher2_id pair_count average_teacher_rating
1234 2345 2 65
2345 5678 2 70
Я попробовал следующий код в sqlite, но он не дал желаемого результата (как показано в финальной таблице выше).
SELECT
t.teacher1_id
, t.teacher2_id
, COUNT(t.teacher1_id = t.teacher2_id)
, (c.rating1 + c.rating2) / COUNT(t.teacher1_id = t.teacher2_id)
FROM teachers t
INNER JOIN classes c on c.id = t.class_id
WHERE COUNT(t.teacher1_id = t.teacher2_id) > 1;