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
返回值
返回由包含两个元素的元组组成的数组。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)] │
└──────────────────────────────────────┘