Группировка последовательных месяцев вместе для классификации данных в HIVE - PullRequest
0 голосов
/ 23 мая 2018

Я хочу сгруппировать свои данные по последовательным группам месяцев, чтобы получить обзор тренда.

Данные таковы:

enter image description here

Требуемая (выходная) группировка будет выглядеть следующим образом:

enter image description here

Здесь я хочу иметь значения только при наличииправильная группировка присутствует в течение 3 последовательных месяцев (это может варьироваться как 2 или 4 последовательных месяца), но нет сценариев случая, когда в данных отсутствуют какие-либо значения месяца.

Например :У пользователя 1 есть значения в месяце 2018-01, но в окончательном требуемом выводе для этого месяца нет группировки, доступной для значений с 2017-11 по 2018-01 или с 2017-12 по 2018-02 или 2018От -01 до 2018-03 для группировки в этом месяце.

1 Ответ

0 голосов
/ 23 мая 2018

Хммм.,,Вот один из способов, который проверяет наличие трех последовательных месяцев, а затем возвращает сумму:

select user, month, month_2, value_3
from (select t.*,
             lead(month, 2) over (partition by user order by month) as month_2,
             (sum(value) +
              lead(value) over (partition by user order by month) +
              lead(value, 2) over (partition by user order by month)
             ) as value_3
      from t
     ) t
where month_2 = add_months(month, 2);
...