根据连续日期排名 - postgresql

时间:2013-11-19 08:36:19

标签: postgresql

Bangalore BLR - Bagmane Tech Park  2013-10-11  Data Centre  0
Bangalore BLR - Bagmane Tech Park  2013-10-11  BMS          0  
Bangalore BLR -Bagmane Tech Park   2013-10-12  BMS          0 
Bangalore BLR - Bagmane Tech Park  2013-10-15  BMS          3

我有上述数据。如果最后一列为零,则应根据所有列进行排名。如果日期是连续的,如2013-10-11,2013-10-12排名应为1,2 ......如果日期有任何中断2013-10-11,2013-10-12和2013-10-15排名应该从2013-10-15的1开始

1 个答案:

答案 0 :(得分:0)

我认为你将不得不在这里写一个自定义聚合,我不认为所涉及的工作将是微不足道的。然后,您需要在具有明确顺序的窗口函数上调用它。

我认为这可以通过将日期存储在数组中,然后处理数组中的最大值并对当前值执行整数数学来完成。当然,问题在于性能,所以你要么想编写一个函数来获取C中数组的最大日期(或者pl / perl?),然后在SQL中从那里处理它。

这个过程太复杂了,无法在这里为您提供工作样本。