Her er din opdatering:
UPDATE stats
SET totalgames = x.games, wins = x.wins
FROM (SELECT LOWER(nick) AS nick, SUM(totalgames) AS games, SUM(wins) AS wins
FROM stats
GROUP BY LOWER(nick) ) AS x
WHERE LOWER(stats.nick) = x.nick;
Her er sletningen for at blæse de duplikerede rækker væk:
DELETE FROM stats USING stats s2
WHERE lower(stats.nick) = lower(s2.nick) AND stats.nick < s2.nick;
(Bemærk, at syntaksen 'opdater...fra' og 'slet...bruger' er Postgres-specifikke og blev stjålet skamløst fra dette svar og dette svar .)
Du vil sikkert også køre dette for at formindske alle navnene:
UPDATE STATS SET nick = lower(nick);
Aaaand smid et unikt indeks ind på den lille version af 'nick' (eller tilføj en begrænsning til den kolonne for at forbyde værdier uden små bogstaver):
CREATE UNIQUE INDEX ON stats (LOWER(nick));