Я хочу написать запрос, который будет распределять записи из одной таблицы в другую с одинаковым номером в зависимости от статуса.
Например, у меня есть две таблицы: Студенты и Учителя , которые имеют разные курсы (статус), и я хочу назначить Учеников каждому Учителю на разных курсах.
Ученики:
name
--------+
Adam |
Bennet |
Elmer |
Justin |
Louis |
Noah |
Jack |
Учителя:
name | coerces
---------+---------
Leo | 1
Kyle | 1
Ethan | 1
Leo | 2
Kyle | 2
Ethan | 2
Примечание:
Один ученик не может иметь более одного учителя.
У каждого ученика в курсе 1 должен быть свойучитель в курсе 2.
Каждый учитель должен иметь такое же количество учеников, что и любой другой учитель ...
... Если толькоколичество учеников не является точным кратным числу учителей, и в этом случае ученики должны быть как можно более равномерно распределены между учителями.Например, если у нас семь учеников и три учителя, первые два учителя будут брать двух учеников, а последний - трех учеников.
Результаты:
Student | Teacher | coerces
--------+---------+---------
Adam | Leo | 1
Bennet | Leo | 1
Elmer | Kyle | 1
Justin | Kyle | 1
Louis | Ethan | 1
Noah | Ethan | 1
Jack | Ethan | 1
Louis | Leo | 2
Noah | Leo | 2
Jack | Kyle | 2
Adam | Kyle | 2
Bennet | Ethan | 2
Elmer | Ethan | 2
Justin | Ethan | 2
Как я могу сделать это в Oracle SQL?