ClickHouse/docs/ja/sql-reference/aggregate-functions/reference/maxintersections.md
2024-11-18 11:58:58 +09:00

1.8 KiB
Raw Blame History

slug sidebar_position title
/ja/sql-reference/aggregate-functions/reference/maxintersections 163 maxIntersections

maxIntersections

グループ内のインターバルがどれだけ多く交差するかすべてのインターバルが少なくとも1回交差する場合の最大数を計算する集約関数です。

構文は以下の通りです:

maxIntersections(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ですが、その共通の値自体は重要ではありません。交差の回数を測定しています)。インターバル(1,3)(3,7)は終点を共有していますが、maxIntersections関数では交差しているとは見なされません。

SELECT maxIntersections(start, end) FROM my_events;

結果:

3

最大インターバルが複数回出現する場合は、maxIntersectionsPosition関数を使用してそれらの出現回数と場所を特定できます。