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

maxIntersectionsPosition

maxIntersections 関数 の出現位置を計算する集約関数です。

構文は以下のとおりです。

maxIntersectionsPosition(start_column, end_column)

引数

  • start_column – 各インターバルの開始位置を表す数値型カラム。start_columnNULL または 0 の場合、そのインターバルはスキップされます。

  • end_column - 各インターバルの終了位置を表す数値型カラム。end_columnNULL または 0 の場合、そのインターバルはスキップされます。

戻り値

最も多くのインターバルが交差している位置の開始点を返します。

CREATE TABLE my_events (
    start UInt32,
    end UInt32
)
ENGINE = MergeTree
ORDER BY tuple();

INSERT INTO my_events VALUES
   (1, 3),
   (1, 6),
   (2, 5),
   (3, 7);

区間は次のようになります:

1 - 3
1 - - - - 6
  2 - - 5
    3 - - - 7

これらの区間のうち 3 つが共通して値 4 を含み、その共通部分は 2 番目の区間から始まっていることに注目してください。

SELECT maxIntersectionsPosition(start, end) FROM my_events;

レスポンス:

2

言い換えると、(1,6) の行は交差している 3 つの区間が始まる位置であり、交差する区間数の最大値は 3 です。