修剪数组中的非升序元素

时间:2016-11-10 09:30:42

标签: sql postgresql

我在postgresql-9.3中有一个带有整数数组列的表。 我需要修剪数组,以便保持元素从数组末尾开始升序。

示例数组:{2,6,8,3,4,5,8,9,11,3,5,7}

修整: {3,5,7}

代码不需要快速或漂亮,它会运行一次以修复一些不良数据。

1 个答案:

答案 0 :(得分:0)

我没想到要管理,但我自己解决了这个问题:

select arr[(select coalesce(max(row_number)+1,1) from (
    select unnest, lead(unnest) over(), row_number() over () from (
        select unnest(arr) from test where id=c.id
    ) as a
) as b where unnest>lead):array_upper(arr,1)] 
from test as c;