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
函数来查找这些出现次数和位置。