ClickHouse/docs/en/sql-reference/aggregate-functions/reference/maxintersections.md
Rich Raposa 759a4c0940
Update docs/en/sql-reference/aggregate-functions/reference/maxintersections.md
Co-authored-by: Dan Roscigno <dan@roscigno.com>
2023-01-12 08:53:22 -07:00

1.6 KiB
Raw Blame History

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. If start_column is NULL or 0 then the interval will be skipped.

  • end_column - the numeric column that represents the end of each interval. If end_column is NULL 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.