выбрать отличную оконную функцию в PostgreSQL - PullRequest
0 голосов
/ 29 мая 2019

У меня есть таблица данных, подобная следующей:

Как выбрать отдельные непрерывности для каждого продольного расстояния в 10-ступенчатом скользящем окне?

В идеале, я бы хотел что-то в столбце Идеал вывода, в котором результаты являются массивами.

Спасибо. enter image description here

1 Ответ

1 голос
/ 29 мая 2019

Один метод использует массивы:

select t.*,
       (select count(distinct c) from unnest(ar) c) as num_distinct
from (select t.*,
             array_agg(continuity) over (order by distance rows between 9 preceding and current row) ar
      from t
     ) t;

EDIT:

Или, если вы хотите значения, агрегируйте их:

select t.*,
       (select array_agg(distinct c) from unnest(ar) c) as num_distinct
from (select t.*,
             array_agg(continuity) over (order by distance rows between 9 preceding and current row) ar
      from t
     ) t;
...