我表中的元组如下所示:(值、日期、属性)。现在我想查询数据库并获取一个范围,但不是取决于日期,而是取决于计数“...范围内的最后 x 个条目”。以下示例将阐明:我有一个时间栏,其中所有属性为“x”的条目按日期列排序,因此点 s 和 t 的日期小于点 0 中的日期和点 x 中的日期当然,y 比点 0 大。所有点都有属性=“a”。
s t 0 x y
------|--------|--|--|--------|------> t
现在我想获取具有以下特征的所有条目:从 s - t 和 x - y 中获取所有条目,其中属性 =“a”并选择 s 和 t,以便我在此范围内获得 60 个条目,选择 t in 5 个条目分别位于 t 和 0 以及 x 和 y 之间的方式。
这是一个示例数据:
(xyz, 01.02.2000, a)
(xyz, 02.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 03.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 04.02.2000, a)
(xyz, 06.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 07.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 10.02.2000, a)
(xyz, 12.02.2000, a)
date = 06.02.2000 和范围 st = 3, t-0=1 的所需输出将是
s = (xyz, 01.02.2000, a)
(xyz, 02.02.2000, a)
t = (xyz, 03.02.2000, a)
(xyz, 04.02.2000, a) NOT because between t and 0 should be 1 free
0 = (xyz, 06.02.2000, a)
而在另一个方向上,时间条上的“正确”方向完全一样……
目前我使用两个按日期排序和限制(5、60)的查询,但我想有更好的方法......我只是不知道这种方式;-)