webForumDet fria alternativet

Position (radnummer) i tabell

Databaser & SQLur Databashanterare & SQL

4 svar · 520 visningar · startad av haagel

Medlem sedan feb. 2006134 inlägg
Frågan#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 :)

Medlem sedan feb. 20011 198 inlägg
#2
select top 10 spelare,poäng from tabell order by poäng desc
Medlem sedan dec. 200012 464 inlägg
#3
select count(*) + 1 
  from t
 where points > 
    (select points 
        from t
       where player = 'Lars')
Medlem 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
Medlem sedan feb. 2006134 inlägg
#5

Tackar tackar!!! :)

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