{1,2,3,4,5,6,7,8,9,10}
假设我需要获取此数组中的最后3项。
{8,9,10}
当数组有数百万项时,如何使用高性能方法实现这一目标?
SELECT * FROM unnest((select arraycolumn from table where id=1)) WITH ORDINALITY as t(a1, num) order by t.num desc limit 25;
这需要8秒才能从拥有1600万个项目的数组中获取最后25个项目。我认为应该有更快的方式。
答案 0 :(得分:0)
尝试切片:
select a[array_length(a,1)-24 : array_length(a,1)]
from (
select arraycolumn from table where id = 1
) sub(a);