PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei der Sortierung


Chris Hunter
09.02.2004, 16:36
also ich habe wiedermal ein problem. und zwar folgendes:

ich programmiere gerade ein punkteanalyse tool für ein onlinegame.
dafür habe ich eine tabelle in der folgendes gespeichert wird:

id
username
punktestand
zeitpunkt


jedesmal wenn ich mich in das tool einlogge wird dann von jedem user in meiner allianz der punktestand in die datenbank eingetragen.
z.b. so

heinrich 100 6000 (timestamp)
heinrich 100 6100
heinrich 110 6200
alois 500 6000
alois 300 6100


jetzt will ich eine tabelle machen wo folgendes angezeigt wird:

Username
Punkte
Letzte Punkte änderung am (dort soll der timestamp rein)
sortiert werden soll die liste entweder nach zeitpunkt ASC oder DESC

jetzt mach ich folgendes query:
SELECT * FROM aktive GROUP BY name ORDER BY zeit DESC oder ASC

jetzt zu meinem eigentlich problem:
durch das group by wird immer nur ein datensatz zu einem bestimmten namen rausgesucht und dann sortiert.
wie kann ich mySQl dazu zwingen den datensatz eines namens zu nehmen, der den größten timestamp hat, weil im moment nimmt er datensätze wie z.b. so:
heinrich 100 6000
alois 500 6000

und mit der ergebnismenge kann ich nicht nach zeitpunkt auf- oder absteigend sortieren.

das problem tritt nur bei der zeit auf, also ich kann den namen und den punktestand richtig sortieren. ich versteh das nicht!

hoffe ihr versteht was ich meine und könnte mir helfen...


nii
28.04.2004, 20:30
probiers mal so:

SELECT max(punktestand), max(zeit) FROM aktive GROUP BY name ORDER BY zeit DESC oder ASC

außer max gibts noch weitere gruppenfunktionen:
min = selbsterklärend
avg = durchschnitt mehrerer werte
count = anzahl
...

lg
nii

windmaster
29.04.2004, 10:50
Und schon wieder ein SELECT*. Das macht das ding nur langsamer!!!