如何增加列中的重复字符串

Pur*_*ida 1 postgresql-9.2

我有一张类似于下面的表格。我只列出了一栏,因为那是我感兴趣的。

| column 
---------
| foo
| foo
| foo
| bar
| bar
| bar
Run Code Online (Sandbox Code Playgroud)

下面是我想要的输出,但我似乎不知道如何实现它。此列不是主键或序列键。

| column 
---------
| foo 1
| foo 2
| foo 3
| bar 1
| bar 2
| bar 3
Run Code Online (Sandbox Code Playgroud)

如果有重复项,我想增加字符串。

Kár*_*agy 5

您可以为此使用行号窗口函数(http://www.postgresql.org/docs/9.2/static/functions-window.html

SELECT col || ' ' || row_number() OVER (PARTITION BY col) 
FROM test_a;
Run Code Online (Sandbox Code Playgroud)

输出将是:

+------------+
| ?column?   |
|------------|
| bar 1      |
| bar 2      |
| bar 3      |
| bar 4      |
| foo 1      |
| foo 2      |
| foo 3      |
| foo 4      |
+------------+
Run Code Online (Sandbox Code Playgroud)