Я ищу способ агрегирования билетов неделя за неделей из источника данных в 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
Есть ли какие-либо встроенныеспособы достичь этого?