Выберите все данные из таблицы, которые для трех идентификаторов, которые появляются больше всего в другой таблице - PullRequest
1 голос
/ 26 февраля 2012

У меня есть две таблицы Oracle SQL:

Team and Work.

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

Team (teamId, name)
Work(workId, name, teamId).

Я действительно не знаю, как select from count max.

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

Надеюсь, что все ясно, если нет, дайте мне знать.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2012

Должно быть что-то вроде этого (не совсем уверен в синтаксисе):

select * from team where teamid in (
   select teamid from (
      select teamid, count(workid)
      from work
      group by teamid
      order by 2)
   where rownum < 4);
0 голосов
/ 26 февраля 2012
select *
from team 
where teamID in(
    select top 3 teamId 
    from Work 
    group by teamId 
    order by COUNT(*) desc
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...