在将记录合并为一个时删除重复项的最佳方法是什么?
我有一种情况,表格会跟踪玩家姓名和他们的记录,如下所示:
stats
-------------------------------
nick totalgames wins ...
John 100 40
john 200 97
Whistle 50 47
wHiStLe 75 72
...
我需要合并 nick 重复的行(忽略大小写时)并将记录合并为一个,如下所示:
stats
-------------------------------
nick totalgames wins ...
john 300 137
whistle 125 119
...
我在 Postgres 中这样做。最好的方法是什么?
我知道我可以通过这样做来获取存在重复项的名称:
select lower(nick) as nick, totalgames, count(*)
from stats
group by lower(nick), totalgames
having count(*) > 1;
我想到了这样的事情:
update stats
set totalgames = totalgames + s.totalgames
from (that query up there) s
where lower(nick) = s.nick
除非这不能正常工作。而且我似乎仍然无法删除包含重复名称的其他重复行。我能做些什么?有什么建议么?