maxIntersections
聚合函数,用于计算一组区间相互交叉的最大次数(如果所有区间至少交叉一次)。
语法是
maxIntersections(start_column, end_column)
参数
-
start_column
– 数字列,表示每个区间的开始。如果start_column
是NULL
或 0,则将跳过该区间。 -
end_column
- 数字列,表示每个区间的结束。如果end_column
是NULL
或 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
其中三个区间具有公共值(该值为 4
,但公共值并不重要,我们正在测量交叉点的计数)。区间 (1,3)
和 (3,7)
共享一个端点,但不被 maxIntersections
函数视为相交。
SELECT maxIntersections(start, end) FROM my_events;
响应
3
如果您有最大区间的多次出现,则可以使用 maxIntersectionsPosition
函数 来定位这些出现的次数和位置。