嗨,我有以下数据:
存储数据
我应用以下查询:
select row_number() over (partition by "Country", "Product Type") as RN,
"Country", "Product Type", "Process Step", "Volume"
from storage_data;
出于某种奇怪的原因,它给了我以下输出,其中它看起来像是按正确的变量进行分区,但它也在Process Step中进行排序。有人能解释一下吗?
存储数据修改
如果你查看查询的EXPLAIN
输出,你会发现PostgreSQL必须排序才能计算row_number()
,这并不奇怪。
由于查询不包含ORDER BY
子句,PostgreSQL按照计算行的顺序返回行。