Как я могу сделать запрос выбора или обновления в MS Access, чтобы получить позицию или звание лиги? - PullRequest
0 голосов
/ 08 мая 2019

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

Position   Players       Points
1          Player1       10
1          Player2       10
1          Player3       10
4          Player4       8
5          Player5       7
5          Player6       7
7          Player7       5

.....

Возможно ли это сделать в обновленном SQL-запросе или в запросе выбора?

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 08 мая 2019

Использовать ранг () - используя sqlserver

SELECT *,  RANK ()  OVER( ORDER BY points desc) AS Position
FROM yourtable

если вы используете ms-access, попробуйте ниже

SELECT *,
       (SELECT COUNT(T1.points) 
          FROM
                 [Table] AS T1 
         WHERE T1.points>= T2.points) AS Rank 
FROM 
      [Table] AS T2 
ORDER BY points DESC
0 голосов
/ 08 мая 2019

Чтобы получить его в запрашиваемом порядке, необходимо включить в запрос desc

CREATE TABLE #league 
( position int, players varchar(50), points int)


insert into #league  select 1, 'Player1', 10
insert into #league  select 1, 'Player2', 10
insert into #league  select 1, 'Player3', 10
insert into #league  select 4, 'Player4', 8
insert into #league  select 5, 'Player5', 7
insert into #league  select 5, 'Player6', 7
insert into #league  select 7, 'Player7', 5

SELECT *,  RANK ()  OVER( ORDER BY points desc) AS Position
FROM #league

DROP TABLE #LEAGUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...