получить максимальную запись в таблице

#sql #aggregate-functions

#sql #агрегатные функции

Вопрос:

У меня есть таблица, подобная этой:

школа таблиц

 ID_School     name
--------------------
ACH001        jack
ACH001        gon
ACH001        fanny
ACH001        tony
ACH002        vera
ACH002        jessica
ACH003        rey
ACH003        tomy
  

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

 ID_School  count
-----------------
ACH001     4
  

Комментарии:

1. Это непонятно. Вам нужна школа и количество школ, в которых больше всего учеников? (И должен ли у вас быть тег homework?)

Ответ №1:

В MS SQL:

 select top 1 ID_School, count(*) IdCount
from school
group by ID_School
order by IdCount desc
  

Ответ №2:

Это все:

select ID_school,count(ID_school) as total from school group by names order by total desc limit 1;

Ответ №3:

Для Oracle:

 SELECT id_school, cnt
  FROM (SELECT id_school, count(*) cnt
          FROM school
         GROUP BY id_school
         ORDER BY cnt)
 WHERE ROWNUM = 1;