PLSQL выбирает наиболее часто встречающееся значение - PullRequest
0 голосов
/ 07 декабря 2018

Я хочу сделать следующее: Создание процедуры, которая возвращает значение section_id с наибольшим количеством зачислений.Это можно рассчитать, посчитав количество идентификаторов student_id в этой таблице.

Пример:

SELECT count(student_id) amount
FROM enrollments
WHERE section_id=20;

Это вернет количество зачислений в секцию с номером 20.

НоЯ хочу вернуть сумму раздела с наибольшим количеством зачислений.Но я не знаю, как, какие-либо предложения о том, как решить эту проблему?Как я уже говорил, я использую PLSQL, поэтому все эти функции можно использовать здесь

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Вы можете попробовать это:

SELECT count(student_id) amount FROM enrollments 
group by section_id
Order by amount desc
limit 1
0 голосов
/ 07 декабря 2018

Вы можете попробовать это:

  SELECT section_id, count(student_id) as StudentCount
  FROM enrollments a
  group by section_id
  having count(student_id) = (SELECT max(count(student_id)) 
  FROM enrollments a
  group by section_id);

SQL Fiddle: http://sqlfiddle.com/#!4/24f7c/1

Вот интересная ссылка о том, как использовать сохранить и решить тот же запрос:

http://rwijk.blogspot.com/2012/09/keep-clause.html

0 голосов
/ 07 декабря 2018

Пожалуйста, попробуйте это:

SELECT section_id, count(student_id) amount
FROM enrollments
GROUP BY section_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...