Выберите суммы очков для каждого игрока - PullRequest
0 голосов
/ 12 апреля 2019

Asume простая таблица очков (player_id, счет).Как выбрать сумму очков для каждого игрока?И ограничьте результат olny до N максимальных сумм.

player_id|score
---------------
      457|   20
      457|   25
      300|   50
      300|    5
      100|    1

Если N равно 2, результат должен быть

player_id|score
---------------
      300|   55
      457|   45

Ответы [ 3 ]

2 голосов
/ 12 апреля 2019

Сначала вам нужно сгруппировать результаты, затем упорядочить по сгруппированным результатам и ограничить ваш результат 2 записями (я предположил players имя таблицы):

select player_id, sum(score) score
from players
group by player_id
order by score desc
limit 2

Демо

0 голосов
/ 12 апреля 2019

Вы можете использовать sum () group by и

Для MySQL вы можете использовать предел

  select player_id, sum(score) score
  from my_table 
  group by player_id 
  order by score desc
  limit 2 

для SqlServer вы можете использовать TOP 2

  select TOP 2 player_id, sum(score) score
  from my_table 
  order by score desc
  group by player_id 
0 голосов
/ 12 апреля 2019
SELECT TOP 2 player_id, SUM(score) FROM score GROUP BY player_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...