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

largestTriangleThreeBuckets

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

Синтаксис

largestTriangleThreeBuckets(n)(x, y)

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

Аргументы

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

Параметры

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

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

Массив Кортежей с двумя элементами:

Пример

Входная таблица:

┌─────x───────┬───────y──────┐
│ 1.000000000 │ 10.000000000 │
│ 2.000000000 │ 20.000000000 │
│ 3.000000000 │ 15.000000000 │
│ 8.000000000 │ 60.000000000 │
│ 9.000000000 │ 55.000000000 │
│ 10.00000000 │ 70.000000000 │
│ 4.000000000 │ 30.000000000 │
│ 5.000000000 │ 40.000000000 │
│ 6.000000000 │ 35.000000000 │
│ 7.000000000 │ 50.000000000 │
└─────────────┴──────────────┘

Запрос:

SELECT largestTriangleThreeBuckets(4)(x, y) FROM largestTriangleThreeBuckets_test;

Результат:

┌────────largestTriangleThreeBuckets(4)(x, y)───────────┐
│           [(1,10),(3,15),(9,55),(10,70)]              │
└───────────────────────────────────────────────────────┘