Hallo und guten Abend,
ich habe eine Tabelle mit 3 Feldern: Name,Punkte,Fehler
in die Datenbank befinden sich einige mehrfache Namenseinträge.
Jetzt möchste ich diese so sortieren, dass der Name nur einmal erscheint mit den meisten punkten und den wenigsten Fehlern.
mein Ansatz 1:
bringt schon mal die richtige Reihenfolge. allerding sind Mitspieler noch mehrfach gelistet, diese dürfen aber nicht doppelt erscheinen, sondern nur 1x mit den besten Ergebnissen also die meisten Punkte und die wenigsten Fehler.
funktioniert auch nicht, da da nur die doppelten Namens-Datensätze gelöscht werden aber nicht zuerst die Sortierung erfolgt.
z.B.
ID,Punkte,Fehler
1,Bernd,25,14
2,Bernd,26,15
3,Bernd,25,11
Rückgabe ist ID1 weil 2und3 gelöscht und gar nicht beachtet werden. ID2 wäre aber richtig. Ohne Group by wird zwar richtig sortiert aber ich habe den spieler 3x und nicht seinen besten Wert.
Danke schon mal
ich habe eine Tabelle mit 3 Feldern: Name,Punkte,Fehler
in die Datenbank befinden sich einige mehrfache Namenseinträge.
Jetzt möchste ich diese so sortieren, dass der Name nur einmal erscheint mit den meisten punkten und den wenigsten Fehlern.
mein Ansatz 1:
Code:
SELECT * FROM highscore ORDER BY Fehler ASC, Punkte DESC LIMIT 16";
Code:
SELECT * FROM highscore GROUP BY Name ORDER BY Punkte DESC, Fehler ASC LIMIT 16
z.B.
ID,Punkte,Fehler
1,Bernd,25,14
2,Bernd,26,15
3,Bernd,25,11
Rückgabe ist ID1 weil 2und3 gelöscht und gar nicht beachtet werden. ID2 wäre aber richtig. Ohne Group by wird zwar richtig sortiert aber ich habe den spieler 3x und nicht seinen besten Wert.
Danke schon mal
Comment