问题的主题不是很清楚,抱歉。
是的,问题如下:我有一个如下的数据库结构,其中 pk 是主键,id 是多行的多个。
+------+------+---------------------+
| pk | id | value |
+------+------+---------------------+
| 99 | 1 | 2013-08-06 11:10:00 |
| 100 | 1 | 2013-08-06 11:15:00 |
| 101 | 1 | 2013-08-06 11:20:00 |
| 102 | 1 | 2013-08-06 11:25:00 |
| 103 | 2 | 2013-08-06 15:10:00 |
| 104 | 2 | 2013-08-06 15:15:00 |
| 105 | 2 | 2013-08-06 15:20:00 |
+------+------+---------------------+
真正需要得到的是,每个组(其中组按 id)的前两行(按值排序)之间的值差异。所以根据上述结构,我需要 timediff(value100, value99) [ 用于 id 1 组] 和 timediff(value104, value103) [ 用于 id 2 组]
即每组中第一两行按值排序的时间值差。
我能想到的一种方法是通过 3 个自连接(或 3 个子查询),以便在其中 2 个中找到前两个,然后第三个查询减去它。有什么建议么?