Календарь таблицы в HiveQL для агрегирования данных по неделям? - PullRequest
0 голосов
/ 17 мая 2019

Я ищу способ агрегирования билетов неделя за неделей из источника данных в Hive.

Не очень хорошо знаком с синтаксисом и предлагаемыми ульями, мне любопытно, есть ли какие-либо встроенныекалендарные таблицы или способы объединения данных неделя за неделей?

SQL:

SELECT MONTH(ppjira.resolutionDate)
       MONTH, 
       COUNT(*) COUNT
FROM ppjira
WHERE YEAR(ppjira.resolutionDate)=2019
    AND ppjira.status = 'Closed'
GROUP BY MONTH(ppjira.resolutionDate);

Результат:

month   count
1   123
2   100
3   75
4   106
5   49

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

Конечная цель здесь - показать, что многие билеты были открыты и закрыты каждыйнеделю данного года.

Я пытался сделать что-то вроде следующего, но я считаю, что мой синтаксис неправильный для hiveql и подзапроса.

select weeknum, sum(startweek) as starts, sum(endweek) as ends,
       (select count(*) as numstarts
        from ppjira ts
        where DATEPART(WEEK, ts.[created]) <= weeknum and
              datepart(week, ts.[resolutionDate]) >= weeknum
       ) as actives
from ((select DATEPART(WEEK, t.[created]) AS weeknum, 1 as startweek, 0 endweek,
              t.[created] as startdate, NULL as enddate
       from ppjira
      ) union all
      (select DATEPART(WEEK, t.[resolutionDate]) AS weeknum, 0 as startweek, 1 as endweek,
              NULL, t.[resolutionDate] as enddate
       from ppjira
      )
     ) t
group by weeknum
order by 1

Есть ли какие-либо встроенныеспособы достичь этого?

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