如何在postgresql 9.4中获取最后25项数组?

时间:2015-07-09 19:41:44

标签: database postgresql

{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个项目。我认为应该有更快的方式。

1 个答案:

答案 0 :(得分:0)

尝试切片:

select a[array_length(a,1)-24 : array_length(a,1)] 
from (
    select arraycolumn from table where id = 1
    ) sub(a);