У меня есть данные временных рядов с аналогичных хостов, которые хранятся в таблице ClickHouse в следующей структуре:
event_type | event_day ------------|--------------------- type_1 | 2017-11-09 20:11:28 type_1 | 2017-11-09 20:11:25 type_2 | 2017-11-09 20:11:23 type_2 | 2017-11-09 20:11:21
Каждая строка в таблице означает наличие значения 1 для event_type в datetime. Чтобы быстро оценить ситуацию, мне нужно указать сумму (итог) + последние семь значений (импульс), например:
event_type | day | total | pulse ------------|------------|-------|----------------------------- type_1 | 2017-11-09 | 876 | 12,9,23,67,5,34,10 type_2 | 2017-11-09 | 11865 | 267,120,234,425,102,230,150
Пытался получить одним запросом следующим образом, но не получилось - импульс состоит из тех же значений:
with
arrayMap(x -> today() - 7 + x, range(7)) as week_range,
arrayMap(x -> count(event_type), week_range) as pulse
select
event_type,
toDate(event_date) as day,
count() as total,
pulse
from database.table
group by day, event_type
event_type | day | total | pulse ------------|------------|-------|------------------------------------------- type_1 | 2017-11-09 | 876 | 876,876,876,876,876,876,876 type_2 | 2017-11-09 | 11865 | 11865,11865,11865,11865,11865,11865,11865
Укажите, пожалуйста, в чем моя ошибка и как добиться желаемого?