Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбор максимального количества записей таблицы с одинаковым полем  [new]
olegg1
Member

Откуда:
Сообщений: 5
Вопрос такой.
Есть таблица Goals
с полями
id, id_player, time_

т.е каждая запись в этой таблице означает 1 гол забитый игроком.
нужно выбрать id_player того игрока, который забил максимальное количество голов. Если таких игроков несколько, выдать их всех.
Ах да....все это надо сделать в одном запросе.
26 май 05, 14:33    [1573045]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
SELECT TOP 1 player_id, count(*) FROM T GROUP BY Player_ID ORDER BY COUNT(*) DESC
26 май 05, 15:09    [1573060]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
olegg1
Member

Откуда:
Сообщений: 5
to Busyman

... если два чела забили одинаковое количество голов и это количество максимально нужно вывести двоих.
если три то три.
запрос должен быть универсальным.
26 май 05, 15:14    [1573081]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
declare @goals table (id int identity, id_player int, time_ varchar(10))
insert  @goals(id_player, time_) values(6,'45:12')
insert  @goals(id_player, time_) values(6,'72:00')
insert  @goals(id_player, time_) values(3,'74:42')
insert  @goals(id_player, time_) values(2,'82:10')
insert  @goals(id_player, time_) values(3,'84:19')

select id_player from @goals group by id_player
having count(id) = (select max(cnt) from (select count(id) as cnt from @goals group by id_player) t)
26 май 05, 15:14    [1573082]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
ChA
Member

Откуда: Москва
Сообщений: 11133
olegg1
to Busyman

... если два чела забили одинаковое количество голов и это количество максимально нужно вывести двоих.
если три то три.
запрос должен быть универсальным.
Вообще-то, Busyman был прав...
SELECT TOP 1 WITH TIES id_player, count(*) FROM @goals GROUP BY id_Player ORDER BY COUNT(*) DESC
26 май 05, 15:21    [1573108]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
olegg1
Member

Откуда:
Сообщений: 5
to Breakneck

спасибо ...все работает.
26 май 05, 15:21    [1573110]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
Breakneck
Member

Откуда: Kiev
Сообщений: 2454
ChA
Вообще-то, Busyman был прав...
SELECT TOP 1 WITH TIES id_player, count(*) FROM @goals GROUP BY id_Player ORDER BY COUNT(*) DESC

Да, этот вариант проще моего. Что-то я совсем забыл про WITH TIES
26 май 05, 15:23    [1573120]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Да и автор про него тоже забыл похоже...
26 май 05, 15:24    [1573129]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
olegg1
Member

Откуда:
Сообщений: 5
ChA
Вообще-то, Busyman был прав...
SELECT TOP 1 WITH TIES id_player, count(*) FROM @goals GROUP BY id_Player ORDER BY COUNT(*) DESC


а что значит with ties? ....с ним работает без него нет...
26 май 05, 15:26    [1573136]     Ответить | Цитировать Сообщить модератору
 Re: Выбор максимального количества записей таблицы с одинаковым полем  [new]
ChA
Member

Откуда: Москва
Сообщений: 11133
olegg1
а что значит with ties? ....с ним работает без него нет...
BOL
26 май 05, 15:28    [1573144]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить