распределить строки в одной таблице по строкам в другой таблице, которые зависят по статусу с равным количеством строк в SQL-оракуле - PullRequest
0 голосов
/ 05 марта 2019

Я хочу написать запрос, который будет распределять записи из одной таблицы в другую с одинаковым номером в зависимости от статуса.

Например, у меня есть две таблицы: Студенты и Учителя , которые имеют разные курсы (статус), и я хочу назначить Учеников каждому Учителю на разных курсах.

Ученики:

name
--------+
Adam    |
Bennet  |
Elmer   |
Justin  |
Louis   |
Noah    |
Jack    |

Учителя:

name     | coerces 
---------+---------
Leo      |  1
Kyle     |  1
Ethan    |  1
Leo      |  2
Kyle     |  2
Ethan    |  2

Примечание:

  1. Один ученик не может иметь более одного учителя.

  2. У каждого ученика в курсе 1 должен быть свойучитель в курсе 2.

  3. Каждый учитель должен иметь такое же количество учеников, что и любой другой учитель ...

  4. ... Если толькоколичество учеников не является точным кратным числу учителей, и в этом случае ученики должны быть как можно более равномерно распределены между учителями.Например, если у нас семь учеников и три учителя, первые два учителя будут брать двух учеников, а последний - трех учеников.

Результаты:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...