Sven Rautenberg: Ranking-Funktion bei MySQL?

Beitrag lesen

Moin!

Für eine Abfrage eines einzelnen Users (d)ein Ranking zu ermitteln ist nicht machbar.

Aber klar doch.

Wenn ich 10 Punkte habe, den wievielten Platz habe ich dann? Dazu muß ich nur zählen, wieviele Leute vor mir sind, und deren Zahl plus 1 ist dann mein Platz.

Leute, die vor mir sind, sind Leute, die mehr als 10 Punkte haben. Daraus ergibt sich dann relativ simpel die SQL-Abfrage:

SELECT count(user) FROM tabelle WHERE punkte > '10'

Das ist in dieser Form allerdings nicht mit anderen Abfragen kombinierbar, die direkt die Userdaten ermitteln, weil gruppiert wird - und das verträgt sich nicht so gut mit direkten Abfragen. Als Subselect wäre es aber denkbar, wobei die Frage ist, ob das nicht unperformanter wird.

- Sven Rautenberg

--
"Love your nation - respect the others."