> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Применяет алгоритм Largest-Triangle-Three-Buckets к входным данным.

# largestTriangleThreeBuckets

<div id="largestTriangleThreeBuckets">
  ## largestTriangleThreeBuckets
</div>

Добавленный в: v23.10.0

Применяет алгоритм [Largest-Triangle-Three-Buckets](https://skemman.is/bitstream/1946/15343/3/SS_MSthesis.pdf) к входным данным.
Этот алгоритм используется для прореживания данных временных рядов при визуализации.
Он предназначен для работы с сериями, отсортированными по координате x.
Для этого отсортированная серия разбивается на бакеты, после чего в каждом бакете находится треугольник наибольшей площади.
Количество бакетов равно числу точек в результирующей серии.
Функция сортирует данные по `x`, а затем применяет алгоритм прореживания к отсортированным данным.

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

**Синтаксис**

```sql theme={null}
largestTriangleThreeBuckets(n)(x, y)
```

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

**Параметры**

* `n` — количество точек в результирующем ряду. [`UInt64`](/ru/reference/data-types/int-uint)

**Аргументы**

* `x` — координата x. [`(U)Int*`](/ru/reference/data-types/int-uint) или [`Float*`](/ru/reference/data-types/float) или [`Decimal`](/ru/reference/data-types/decimal) или [`Date`](/ru/reference/data-types/date) или [`Date32`](/ru/reference/data-types/date32) или [`DateTime`](/ru/reference/data-types/datetime) или [`DateTime64`](/ru/reference/data-types/datetime64)
* `y` — координата y. [`(U)Int*`](/ru/reference/data-types/int-uint) или [`Float*`](/ru/reference/data-types/float) или [`Decimal`](/ru/reference/data-types/decimal) или [`Date`](/ru/reference/data-types/date) или [`Date32`](/ru/reference/data-types/date32) или [`DateTime`](/ru/reference/data-types/datetime) или [`DateTime64`](/ru/reference/data-types/datetime64)

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

Возвращает массив Tuple из двух элементов. [`Array(Tuple(Float64, Float64))`](/ru/reference/data-types/array)

**Примеры**

**Прореживание данных временных рядов**

```sql title=Query theme={null}
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;
```

```response title=Response theme={null}
┌────────largestTriangleThreeBuckets(4)(x, y)───────────┐
│           [(1,10),(3,15),(9,55),(10,70)]              │
└───────────────────────────────────────────────────────┘
```
