メインコンテンツへスキップ
メインコンテンツへスキップ

largestTriangleThreeBuckets

largestTriangleThreeBuckets

導入バージョン: v23.10

入力データに Largest-Triangle-Three-Buckets アルゴリズムを適用します。 このアルゴリズムは、可視化のために時系列データをダウンサンプリングする際に利用されます。 このアルゴリズムは、x 座標でソートされた系列に対して動作するように設計されています。 ソートされた系列をバケットに分割し、各バケット内で最大の三角形を求めることで機能します。 バケットの数は、結果として得られる系列の点の数と等しくなります。 この関数は、まずデータを x でソートし、その後ソート済みデータに対してダウンサンプリングアルゴリズムを適用します。

指定された系列内の NaN は無視されるため、NaN 値は分析から除外されます。 これにより、この関数は有効な数値データのみに対して動作します。

構文

largestTriangleThreeBuckets(n)(x, y)

エイリアス: lttb

パラメータ

  • n — 結果の系列に含まれるポイント数。UInt64

引数

返される値

2 要素を持つタプルからなる配列を返します。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)]              │
└───────────────────────────────────────────────────────┘