【发布时间】:2014-11-12 22:46:13
【问题描述】:
对于一个看起来像的表
ID | Value
-------------
1 | 2
2 | 10
3 | 3
4 | 2
5 | 0
6 | 3
7 | 3
我想为表格中出现的每个Value 计算具有更高Value 的ID 数量,即
Value | Position
----------------
10 | 0
3 | 1
2 | 4
0 | 6
这相当于Value 在ORDER BY Value 排序中的偏移量。
我已经考虑通过计算重复的数量来做到这一点
SELECT Value, count(*) AS ct FROM table GROUP BY Value";
然后累积结果,但我想这不是最佳方法(我也没有设法相应地组合命令)
如何有效地计算这个(几十万行)?
【问题讨论】:
标签: sql postgresql window-functions