Presto SQL 中唯一行标识符

3

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

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


在创建表时,您可以添加一个主键。 - Gordon Linoff
1
Presto是一个在现有数据源上运作的查询引擎,因此它可以通过底层数据源中存在的这种数据进行传递,但它本身无法创建。 - Dain Sundstrom
@GordonLinoff 希望我是那个创建这些表的人...! - Roméo Després
2个回答

5

为了扩展并简化JNevill的回答,如果您只想要行号:

SELECT row_number() OVER () AS row_num

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

4
缺少主键,您可以简单地插入一个。
ROW_NUMBER() OVER (PARTITION BY some, columns ORDER BY some_other_column) as rn 

这将定义一行数字,在该行上“某些列”将成为伪主键。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接