これがあなたのアップデートです:
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;
重複する行を吹き飛ばすための削除は次のとおりです。
DELETE FROM stats USING stats s2
WHERE lower(stats.nick) = lower(s2.nick) AND stats.nick < s2.nick;
(「update...from」および「delete...using」構文はPostgres固有であり、この回答
および
これを実行して、すべての名前を小文字にすることもできます:
UPDATE STATS SET nick = lower(nick);
Aaaandは、小文字バージョンの「nick」に一意のインデックスを挿入します(または、その列に制約を追加して、小文字以外の値を禁止します):
CREATE UNIQUE INDEX ON stats (LOWER(nick));