如何找到作为Presto表中其他值的子字符串出现的最短唯一四键值



我有一个四键表,我想找到最短的唯一四键,它们是其他值的子字符串(特别是其他值以这些四键值开头的地方(,即包含Bing瓦片的最大值。我该怎么办?我的第一个想法是为我使用的缩放级别生成所有可能的子字符串,只需为每个长度创建一列,并寻找最短的唯一子字符串,但我不知道如何实际执行比较。考虑以下示例:

我有一张看起来像的桌子

quadkey
121310
12131022
1213102
00321023
0032102

如果我理解正确,您可以使用相关的子查询:

select t.*,
(select t2.quadkey
from t t2
where t.quadkey like t2.quadkey || '%'
order by t2.quadkey asc
limit 1
) as shortest_quadkey
from t;

对于大量数据,这将具有非常差的性能。

相关内容

  • 没有找到相关文章

最新更新