Сгруппировать по равным данным внутри столбца, агрегированного массивами - PullRequest
0 голосов
/ 18 октября 2019

У меня есть набор данных с тремя столбцами, и мне нужно сгруппировать, но сохраняя «массивы» с небольшими группами, упорядоченными по данным:

Original Dataset

Ожидаемый результат:

Expected Result

1 Ответ

1 голос
/ 18 октября 2019

Это проблема пробелов и островов, которую легче всего решить с разницей в числах строк:

select type, count(*), min(date_status), max(date_status)
from (select t.*,
             row_number() over (order by date_status) as seqnum,
             row_number() over (partition by type order by date_status) as seqnum_t
      from t
     ) t
group by type, (seqnum - seqnum_t)
order by min(date_status);

Почему эту работу немного сложно объяснить. Я обнаружил, что если кто-то смотрит на результаты подзапроса, этот человек обычно видит, как разница двух столбцов с номерами строк определяет группы смежных type s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...