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)
功能相同,这意味着所有行都分配给同一分区。这样,所有行都会有唯一的行号。
我处理没有唯一行标识符的 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)
功能相同,这意味着所有行都分配给同一分区。这样,所有行都会有唯一的行号。