Här är din uppdatering:
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;
Här är borttagningen för att blåsa bort dubblettraderna:
DELETE FROM stats USING stats s2
WHERE lower(stats.nick) = lower(s2.nick) AND stats.nick < s2.nick;
(Observera att syntaxen "uppdatering...från" och "ta bort...använder" är Postgres-specifika och stals skamlöst från det här svaret och det här svaret .)
Du kommer förmodligen också att vilja köra detta för att förminska alla namn:
UPDATE STATS SET nick = lower(nick);
Aaa och släng in ett unikt index på den gemena versionen av "nick" (eller lägg till en begränsning i den kolumnen för att inte tillåta icke-gemener):
CREATE UNIQUE INDEX ON stats (LOWER(nick));