我被困在下面的 sql 查询中。我有一张桌子:
id | C1 | C2 | date
1 | 1 | 1 | 1/10/2010 9:30:10
2 | 1 | 1 | 1/10/2010 9:31:10
3 | 1 | 1 | 1/10/2010 9:32:10
4 | 1 | 1 | 1/10/2010 9:37:10
5 | 1 | 2 | 1/10/2010 9:38:10
6 | 2 | 3 | 1/10/2010 9:39:10
7 | 2 | 3 | 1/10/2010 9:45:10
8 | 2 | 3 | 1/10/2010 9:46:10
现在我想获取如下记录:
按 5 分钟的日期差异(最新日期)和相同的 C1 和相同的 C2
对记录进行分组(即,相同 C1 的每个 C2 的 5 分钟内的 latset 日期等记录)。
我想要的输出为:
id | C1 | C2 | date
3 | 1 | 1 | 1/10/2010 9:32:10
4 | 1 | 1 | 1/10/2010 9:37:10
5 | 1 | 2 | 1/10/2010 9:38:10
6 | 2 | 3 | 1/10/2010 9:39:10
7 | 2 | 3 | 1/10/2010 9:46:10
解释:
1. 前 3 条记录被分组(5 分钟内相同的 C1 和相同的 C2)和第 3 条记录(这 3 条中的最新)。
2. 获取第 4 条记录。(这是相同 C1 和相同 C2 向后 5 分钟和向前 5 分钟内的唯一记录)。
3. 同上
同样直到...第8条记录。
我尝试了各种分组和按查询分区,但被卡住了。任何帮助,将不胜感激。谢谢