假设我有一个包含两列的表:start
和end
,都是整数,并且该表按第一列排序,然后是第二列。每行代表一个区间。
我需要的是合并间隔表:所有重叠或相邻的间隔都合并为一个。
它可以用一个 JOIN 查询来构建,但它的行数是二次的,在我的例子中是 400 万行(我决定编写这个问题,因为查询仍在运行)。
它也可以通过运行每一行并跟踪最大结束时间来一次完成——但是如何在标准 SQL 中做到这一点,或者类似的东西?在 SQL 中是否有任何O(n) 方法可以做到这一点?我现在正在使用 SQLite;这次,特定于 SQLite 的解决方案也将帮助我。
从相关问题的答案(1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9)我无法判断这是否可能。
你能?