Presto 中的唯一行标识符 SQL

Unique row identifier in Presto SQL

我处理没有唯一行标识符的 Presto SQL 表。识别特定记录的唯一方法是查询其所有字段。

Presto 中是否有某种隐藏字段,比如 ROW_PRIMARY_KEY,可以让我唯一地标识我的表中的记录?

缺少主键,您可以直接输入

ROW_NUMBER() OVER (PARTITION BY some, columns ORDER BY some_other_column) as rn 

这将定义一个行号,其中 some, columns 将是伪主键。

扩展和简化 ,如果您只需要一个行号:

SELECT row_number() OVER () AS row_num

请注意,OVER () 可能与 OVER (PARTITION BY 1) 功能相同,这意味着所有行都分配给同一分区。这样,所有行都会有唯一的行号。