我使用的是Postgres 9.6。我有这样的查询:
SELECT name, count(spend) as spend FROM mytable GROUP BY name;
这会产生Dave,40000
等结果。
我想为每个结果添加一个唯一的标识符(是的,我知道名称已经是一个唯一的标识符,但我想要一个数字标识符)。所以我想要像1,Dave,40000
这样的结果。
唯一标识符的含义并不重要,只要它们是数字的,但它们也可能是整数。
使用Postgres有一种简单的方法吗?
答案 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;