webForumDet fria alternativet

Position (radnummer) i tabell

4 svar · 520 visningar · startad av haagel

haagelMedlem sedan feb. 2006134 inlägg
#1

Hej!

Vi håller på att göra ett spel där användarna får poäng. I vårt grafiska gränssnitt vill vi visa spelarens ranking vilken beror på poängen (högst antal poäng = högst ranking osv..). Vi har alltså en tabell med användare (spelare) och deras poäng.

Nu till frågan:
Går det att ta ut rankingen med SQL? Då vårt spel är webbaserat vill vi helst inte ta hem alla spelare och deras poäng till applikationen och låta den beräkna ranking, då detta skulle generera en hel del trafik. Det är ju lätt att ta fram en tabell med användarna där de sorteras efter antal poäng i fallande ordning med den som har flest poäng först i tabellen. Men om vi har en speciell spelare/användare, kan man då ta fram på vilken rad i tabellen denne ligger? Alltså, om en spelare ligger på rad 10 i tabellen så vill vi få tillbaka 10 med vårt SQL-fråga.

Vi använder Access. Hoppas nån kan hjälpa :)

yohpopsMedlem sedan feb. 20011 198 inlägg
#2
select top 10 spelare,poäng from tabell order by poäng desc
LarsGMedlem sedan dec. 200012 464 inlägg
#3
select count(*) + 1 
  from t
 where points > 
    (select points 
        from t
       where player = 'Lars')
emissionMedlem sedan dec. 19996 721 inlägg
#4
SELECT     p.id, p.name, COUNT(p2.id) + 1 AS position FROM  players p 
LEFT OUTER JOIN players p2 ON p2.points > p.points
GROUP BY p.id, p.name
haagelMedlem sedan feb. 2006134 inlägg
#5

Tackar tackar!!! :)

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)