largestTriangleThreeBuckets
Добавленный в: v23.10.0
Применяет алгоритм Largest-Triangle-Three-Buckets к входным данным.
Этот алгоритм используется для прореживания данных временных рядов при визуализации.
Он предназначен для работы с сериями, отсортированными по координате x.
Для этого отсортированная серия разбивается на бакеты, после чего в каждом бакете находится треугольник наибольшей площади.
Количество бакетов равно числу точек в результирующей серии.
Функция сортирует данные по x, а затем применяет алгоритм прореживания к отсортированным данным.
Значения NaN в переданной серии игнорируются, то есть все значения NaN исключаются из анализа. Это гарантирует, что функция работает только с корректными числовыми данными.
Синтаксис
largestTriangleThreeBuckets(n)(x, y)Псевдонимы: lttb
Параметры
n— количество точек в результирующем ряду.UInt64
Аргументы
x— координата x.(U)Int*илиFloat*илиDecimalилиDateилиDate32илиDateTimeилиDateTime64y— координата y.(U)Int*илиFloat*илиDecimalилиDateилиDate32илиDateTimeилиDateTime64
Возвращаемое значение
Возвращает массив Tuple из двух элементов. Array(Tuple(Float64, Float64))
Примеры
Прореживание данных временных рядов
CREATE TABLE largestTriangleThreeBuckets_test (x Float64, y Float64) ENGINE = Memory;
INSERT INTO largestTriangleThreeBuckets_test VALUES
(1.0, 10.0), (2.0, 20.0), (3.0, 15.0), (8.0, 60.0), (9.0, 55.0),
(10.0, 70.0), (4.0, 30.0), (5.0, 40.0), (6.0, 35.0), (7.0, 50.0);
SELECT largestTriangleThreeBuckets(4)(x, y) FROM largestTriangleThreeBuckets_test;┌─largestTriangleThreeBuckets(4)(x, y)─┐
│ [(1,10),(3,15),(9,55),(10,70)] │
└──────────────────────────────────────┘