Ecco il tuo aggiornamento:
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;
Ecco l'eliminazione per spazzare via le righe duplicate:
DELETE FROM stats USING stats s2
WHERE lower(stats.nick) = lower(s2.nick) AND stats.nick < s2.nick;
(Nota che la sintassi 'aggiorna...da' ed 'elimina...usando' sono specifiche di Postgres e sono state rubate spudoratamente da questa risposta e questa risposta .)
Probabilmente vorrai anche eseguire questo per minimizzare tutti i nomi:
UPDATE STATS SET nick = lower(nick);
Aaa e inserisci un indice univoco sulla versione minuscola di 'nick' (o aggiungi un vincolo a quella colonna per non consentire i valori non minuscoli):
CREATE UNIQUE INDEX ON stats (LOWER(nick));