Co-authored-by: Dan Roscigno <dan@roscigno.com>
1.6 KiB
slug | sidebar_position | title |
---|---|---|
/en/sql-reference/aggregate-functions/reference/maxintersections | 360 | maxIntersections |
maxIntersections
Aggregate function that calculates the maximum number of times that a group of intervals intersects each other (if all the intervals intersect at least once).
The syntax is:
maxIntersections(start_column, end_column)
Arguments
-
start_column
– the numeric column that represents the start of each interval. Ifstart_column
isNULL
or 0 then the interval will be skipped. -
end_column
- the numeric column that represents the end of each interval. Ifend_column
isNULL
or 0 then the interval will be skipped.
Returned value
Returns the maximum number of intersected intervals.
Example
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);
The intervals look like the following:
1 - 3
1 - - - - 6
2 - - 5
3 - - - 7
Three of these intervals have a common value (the value is 4
, but the value that is common is not important, we are measuring the count of the intersections) . The intervals (1,3)
and (3,7)
share an endpoint but are not considered intersecting by the maxIntersections
function.
SELECT maxIntersections(start, end) FROM my_events;
Response:
3
If you have multiple occurrences of the maximum interval, you can use the maxIntersectionsPosition
function to locate the number and location of those occurrences.