делает не совсем то, что нужно.
Мне нужно поссчитать за год сумму по определенному полю со скользящим окном в неделю.
Например,
SELECT pubDate, object_content, uniqMerge(c) as traffic
FROM objects
WHERE pubDate between '2019-01-01' and '2020-01-01'
and object_content = 'привет'
GROUP BY pubDate, object_content
ORDER BY pubDate
отдает мне количество упоминаний слова за год, сгруппиванного по дням - 366 значений.
мне же нужны те же 366 значений, только что бы данные группировались по периоду «(дата) - (дата минус 7 дней)»
в целом могу это сделать в питоне, но интересно, можно ли это реализовать на КХ-SQL?
Ну в лоб можно сделать через функцию neighbor* Тупо sum(neighbor*, neighbor*)
array join на дни недели, group by date
Попробуйте это: SELECT arrayJoin(arrayMap(x -> (x+pubDate), [0, 1, 2, 3, 4, 5, 6])) as window_end, object_content, uniqMerge(c) as traffic FROM objects WHERE pubDate between '2019-01-01' and '2020-01-01' and object_content = 'привет' GROUP BY window_end, object_content ORDER BY window_end
Обсуждают сегодня