PostgreSQL中的rank()

PostgreSQL中的rank(),postgresql,aggregate-functions,Postgresql,Aggregate Functions,一个简单的问题-我写了这段代码: SELECT memid, facid, starttime, slots, SUM(slots) over(partition by memid ORDER BY starttime), rank() over(partition by memid) FROM cd.bookings; 我希望它能为我输出这样的结果: memid facid starttime slots sum rank 0 2 2012-07-01 2

一个简单的问题-我写了这段代码:

SELECT memid, facid, starttime, slots,
SUM(slots) over(partition by memid ORDER BY starttime), 
rank() over(partition by memid)
FROM cd.bookings;
我希望它能为我输出这样的结果:

memid  facid  starttime  slots  sum  rank
  0      2    2012-07-01   2     2     1
  0      5    2012-07-02   2     4     1
  0      1    2012-07-03   2     6     1
  0      2    2012-07-04   2     8     1
  0      3    2012-07-05   2     10    1
  1      2    2012-07-01   2     2     2
  1      2    2012-07-02   2     4     2
  1      2    2012-07-03   2     6     2
  1      2    2012-07-04   2     8     2
  .      .         .       .     .     .
  .      .         .       .     .     .
  .      .         .       .     .     .
  n     ...       ...     ...   ...    X

所以,我希望它为每个memid指定一个递增的秩值但是,排名列总是停留在1。我也尝试使用稠密的_rank()函数将其切换,但它也不起作用。我做错了什么

尝试在RANK()中使用ORDER BY,就像在SUM()中一样。RANK()需要一个ORDER BY…SUM()不是那么多:)问题在于按memid划分,我想,试试这个:densite_RANK()over(ORDER BY memid)谢谢你们,这两个解决方案对我都有效:)