Перейти к основному содержимому
Перейти к основному содержимому

largestTriangleThreeBuckets

largestTriangleThreeBuckets

Введена в версии: v23.10

Применяет алгоритм Largest-Triangle-Three-Buckets к входным данным. Алгоритм используется для даунсемплинга (прореживания) временных рядов для целей визуализации. Он предназначен для работы с рядами, отсортированными по координате x. Работает путём разбиения отсортированного ряда на бакеты и последующего поиска наибольшего треугольника в каждом бакете. Количество бакетов равно количеству точек в результирующем ряду. Функция отсортирует данные по x, а затем применит алгоритм даунсемплинга к отсортированным данным.

Значения NaN игнорируются во входном ряду, то есть любые значения NaN будут исключены из анализа. Это гарантирует, что функция работает только с корректными числовыми данными.

Синтаксис

largestTriangleThreeBuckets(n)(x, y)

Псевдонимы: lttb

Параметры

  • n — число точек в результирующем ряду. UInt64

Аргументы

Возвращаемое значение

Возвращает массив кортежей с двумя элементами. 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)]              │
└───────────────────────────────────────────────────────┘