Postgres:为结果添加唯一整数?

时间:2017-03-03 19:42:23

标签: postgresql

我使用的是Postgres 9.6。我有这样的查询:

SELECT name, count(spend) as spend FROM mytable GROUP BY name;

这会产生Dave,40000等结果。

我想为每个结果添加一个唯一的标识符(是的,我知道名称已经是一个唯一的标识符,但我想要一个数字标识符)。所以我想要像1,Dave,40000这样的结果。

唯一标识符的含义并不重要,只要它们是数字的,但它们也可能是整数。

使用Postgres有一种简单的方法吗?

2 个答案:

答案 0 :(得分:4)

窗口功能:

select row_number() over(order by name) as ui, name, count(spend) as spend
from mytable
group by name;

https://www.postgresql.org/docs/current/static/functions-window.html

答案 1 :(得分:1)

你可以使用row_number

SELECT ROW_NUMBER () OVER (ORDER BY name) AS consecutivo, name, count(spend) as spend FROM mytable GROUP BY name;