Sql 对于一组重叠的日期范围记录,找到最低值

Sql 对于一组重叠的日期范围记录,找到最低值,sql,sqlite,Sql,Sqlite,注意:我在受限环境中工作,不能使用其他工具 根据下面的CREATETABLE语句,我有一个表。开始和结束表示朱利安日期格式中的日期,该日期格式形成一个包含Id值的日期范围 首先,表格中填充的记录可能对每个Id具有重叠的[start,End]间隔。我想为每个Id创建一个具有非重叠记录的版本,优先考虑较低的值。我还希望合并具有相同值的相同Id的任何连续记录 即 应成为: Id|Value|Start|End 1|1|2|4 1|3|5|5 1|3|8|9 2|2|1|9 1|2|6|7 我有一组查

注意:我在受限环境中工作,不能使用其他工具

根据下面的CREATETABLE语句,我有一个表。开始和结束表示朱利安日期格式中的日期,该日期格式形成一个包含Id值的日期范围

首先,表格中填充的记录可能对每个Id具有重叠的[start,End]间隔。我想为每个Id创建一个具有非重叠记录的版本,优先考虑较低的值。我还希望合并具有相同值的相同Id的任何连续记录

应成为:

Id|Value|Start|End
1|1|2|4
1|3|5|5
1|3|8|9
2|2|1|9
1|2|6|7

我有一组查询实现了这一点。但它们相当复杂且缓慢。我希望有人能对我的工作方向提出一些好的想法或建议。

最好使用迭代算法,即SQL之外的算法。任何一组SQL查询都是复杂而缓慢的。@我知道,但正如一开始所说的,我是在受限环境中工作的。我正在寻找一个不那么糟糕的解决棘手问题的方法。
Id|Value|Start|End
1|1|2|4
1|3|3|8
1|3|3|9
2|2|1|9
1|2|6|7
Id|Value|Start|End
1|1|2|4
1|3|5|5
1|3|8|9
2|2|1|9
1|2|6|7