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

时间:2014-09-20 06:14:09

标签: sql sqlite

注意:我在受限制的环境中工作,使用其他工具不是一种选择。

我有一个表,根据下面的CREATE TABLE语句。 StartEnd代表朱利安日期格式中的日期,这些格式构成Id Value CREATE TABLE ObjectValues ("Id" INTEGER, "Value" INTEGER, "Start" REAL, "End" REAL); 的日期范围(包括)。

Start

首先,该表格中填充的记录可能会为每个End重叠[IdId]个时间间隔。我想为每个Value创建一个包含非重叠记录的版本,优先考虑较低的Id值。我还希望合并Value的同一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

应该成为:

{{1}}

我有一组实现此目的的查询。但它们相当复杂而且速度慢。我希望有人能提出一些好的想法或建议。

0 个答案:

没有答案