postgresql - Row_Number 函数不由自主地对值进行排序(Postgresql)
问题描述
您好,我有以下数据:
我应用以下查询:
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 按照计算顺序返回行。
推荐阅读
- python - 根据条件将缺失的行从一个数据帧添加到另一个数据帧
- python - 根据相关字段的计数排除
- python - conda - 鱼壳中的路径顺序
- reactjs - 使用 React Context 单击时切换值
- java - 如何为 i18n 配置 WebFlux
- javascript - 应用程序在按下后退按钮时关闭而不是返回 - Ionic 5
- arrays - 如何使用数组填充按钮堆栈
- arrays - 如何在表格中搜索单元格值
- etl - 在一个组件 ADF 中创建多个派生列
- node.js - 当在 apiEndpoints 中没有将 localhost 作为主机时,“无法 GET /”使用带有 nodejs express API 的 express gateway 或“Bad gateway”的问题