PostgreSQL仅对有序数据上的连续行排序
所以我遇到了这个有趣的问题,一开始它看起来很简单,使用一个简单的sql窗口函数。 但事实并非如此。任何只使用秩或稠密秩的解 基本上,我想分配排名的基础上汽油价格和生效日期。表结构及其数据如下所示PostgreSQL仅对有序数据上的连续行排序,postgresql,rank,dense-rank,Postgresql,Rank,Dense Rank,所以我遇到了这个有趣的问题,一开始它看起来很简单,使用一个简单的sql窗口函数。 但事实并非如此。任何只使用秩或稠密秩的解 基本上,我想分配排名的基础上汽油价格和生效日期。表结构及其数据如下所示 如果您希望这样的输出 price dte rn ----- ---------- -- 65.5 2013-06-01 1 66.3 2014-06-01 1 66.3 2015-12-01 2 67 2012-01-01 1 67 2012-06-0
如果您希望这样的输出
price dte rn
----- ---------- --
65.5 2013-06-01 1
66.3 2014-06-01 1
66.3 2015-12-01 2
67 2012-01-01 1
67 2012-06-01 2
67 2013-01-01 3
67 2014-01-01 4
67 2016-01-01 5
查询应该是
select *
,row_number() over(partition by price order by dte) rn
from price;
或
PostgreSQL的如果您希望这样的输出
price dte rn
----- ---------- --
65.5 2013-06-01 1
66.3 2014-06-01 1
66.3 2015-12-01 2
67 2012-01-01 1
67 2012-06-01 2
67 2013-01-01 3
67 2014-01-01 4
67 2016-01-01 5
查询应该是
select *
,row_number() over(partition by price order by dte) rn
from price;
或
PostgreSQL的编辑您的帖子并将数据写入文本。编辑帖子并将数据写入文本。