Мне нужно написать запрос с указанием имени сотрудника (ов), который контролирует наибольшее количество студентов. В результате также должно отображаться количество студентов. Запрос также должен работать в ситуациях, когда у более чем одного супервизора есть высшие ученики (например, 2 супервизора имеют 10 студентов, 10 из которых являются высшими). просто перечислить значения по частоте появления, а затем использовать LIMIT, чтобы показать только верхнее. Однако мне нужно сделать это таким образом, чтобы он отображал самый высокий и любые другие, которые ему равны, и это должно быть динамическое c для списка результатов любой длины.
Есть 2 отдельные таблицы, как показано ниже, поэтому я решил, что запрос будет примерно таким:
Таблица студентов
+------------------+----------+
| S_FIRST | F_ID |
+------------------+----------+
| Tammy | 1 |
| jorge | 1 |
| john | 1 |
| mike | 2 |
| lisa | 4 |
| ni | 3 |
таблица факультетов
+------------------+----------+
| F_FIRST | F_ID |
+------------------+----------+
| Teresa | 1 |
| mark | 2 |
| colin | 3 |
| jonnel | 4 |
| james | 5 |
SELECT F_FIRST, COUNT (student.F_ID ) AS value_occurrence
от факультета, группы студентов по F_FIRST ORDER BY value_occurrence DESC;
Но это просто дает следующий результат.
F_FIRST VALUE_OCCURRENCE
--------------- ----------------
Jonnel 6
Mark 6
James 6
Colin 6
Teresa 6
Ожидаемый результат:
F_FIRST VALUE_OCCURRENCE
--------------- ----------------
Teresa 3