如何从表中选择固定数量的行,其中时间戳列和返回行彼此距离相等。我需要这些点作为用于绘制时间序列的样本点。我知道解决此问题的其他技术,例如交叉过滤器等,但我现在希望能够使用服务器。
例如下表:(为了清楚起见,简化了时间戳)
id key val timestamp
1 'a' 100 1am
2 'b' 120 2am
3 'c' 130 3am
4 'd' 140 4am
5 'e' 130 5am
6 'f' 135 6am
7 'g' 136 7am
8 'h' 139 8am
9 'i' 149 9am
10 'j' 140 10am
11 'k' 140 11am
12 'l' 135 12pm
所以我希望能够运行一个查询,该查询将返回一个大小为 3 的样本,例如,它应该返回第 1、5 和 9 行。
我不想使用 id,因为我的表比这更复杂,我将在查询中应用 where 子句等,因此使用 ID 是行不通的。
通过与其他 RDBS 合作,我知道 RANK,但它似乎不存在于 mysql 中,我看到了解决方法,就像这里的那个,但我不认为这是编写 mysql 的一种干净的方法。
关于如何解决这个问题的任何建议?