mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-16 03:12:43 +00:00
c1b71ab06e
* CLICKHOUSEDOCS-733: Fixed some broken links. Updated introduction and TOC in aggregate functions. * CLICKHOUSEDOCS-733: Fixed files endings. * CLICKHOUSEDOCS-733: Returned the list of functions back to reference index. Co-authored-by: Sergei Shtykov <bayonet@yandex-team.ru> Co-authored-by: emironyuk <em@don.ru>
2.3 KiB
2.3 KiB
toc_priority |
---|
170 |
timeSeriesGroupSum
Синтаксис: timeSeriesGroupSum(uid, timestamp, value)
timeSeriesGroupSum
агрегирует временные ряды в которых не совпадают моменты.
Функция использует линейную интерполяцию между двумя значениями времени, а затем суммирует значения для одного и того же момента (как измеренные так и интерполированные) по всем рядам.
uid
уникальный идентификатор временного ряда,UInt64
.timestamp
имеет типInt64
чтобы можно было учитывать милли и микросекунды.value
представляет собой значение метрики.
Функция возвращает массив кортежей с парами (timestamp, aggregated_value)
.
Временные ряды должны быть отсортированы по возрастанию timestamp
.
Пример:
┌─uid─┬─timestamp─┬─value─┐
│ 1 │ 2 │ 0.2 │
│ 1 │ 7 │ 0.7 │
│ 1 │ 12 │ 1.2 │
│ 1 │ 17 │ 1.7 │
│ 1 │ 25 │ 2.5 │
│ 2 │ 3 │ 0.6 │
│ 2 │ 8 │ 1.6 │
│ 2 │ 12 │ 2.4 │
│ 2 │ 18 │ 3.6 │
│ 2 │ 24 │ 4.8 │
└─────┴───────────┴───────┘
CREATE TABLE time_series(
uid UInt64,
timestamp Int64,
value Float64
) ENGINE = Memory;
INSERT INTO time_series VALUES
(1,2,0.2),(1,7,0.7),(1,12,1.2),(1,17,1.7),(1,25,2.5),
(2,3,0.6),(2,8,1.6),(2,12,2.4),(2,18,3.6),(2,24,4.8);
SELECT timeSeriesGroupSum(uid, timestamp, value)
FROM (
SELECT * FROM time_series order by timestamp ASC
);
И результат будет:
[(2,0.2),(3,0.9),(7,2.1),(8,2.4),(12,3.6),(17,5.1),(18,5.4),(24,7.2),(25,2.5)]