SELECT p.name AS Spieler,
COUNT(DISTINCT g.id) AS Spiele, --Variable neu hinzugefügt
COUNT(DISTINCT r1.id) AS Runden, --Variable neu hinzugefügt
SUM((SELECT pa.points FROM point_allocation pa --Variable neu hinzugefügt
WHERE pa.nr_players = ANY
(SELECT COUNT(DISTINCT pg.id) FROM round r2
LEFT JOIN placing pg ON pg.round_id = r2.id
LEFT JOIN game g ON r2.game_id = g.id
WHERE r2.id = r1.id
GROUP BY r1.id)
AND pa.place = pg.place)) AS Punkte,
Punkte/Spiele AS "Punkte/Spiel" --aus oben eingeführten Variablen neuen Wert berechnen
FROM player p
LEFT JOIN placing pg ON pg.player_id = p.id
LEFT JOIN round r1 ON pg.round_id = r1.id
LEFT JOIN game g ON g.id = r1.game_id
GROUP BY p.name ORDER BY Punkte DESC, Spiele DESC, Runden DESC;
Nur als Idee, geht das?
Eventuell "Punkte/Spiele" noch in eine Funktion (math. Art oder/und Stringfunktion) einpacken...