每10分钟分组一次,并获得最小/最大值的'captureTime'

时间:2011-11-14 15:22:32

标签: sql group-by aggregate-functions

-----------------------------------------------------------
chan1   |chan2  |chan3  | captureTime           |id
-----------------------------------------------------------
20      |21     |25     | 2011-10-11 00:00:00   |1
-----------------------------------------------------------
21      |5      |7      | 2011-10-11 00:01:00   |1
-----------------------------------------------------------
                .
                .
-----------------------------------------------------------
12      |25     |21     | 2011-10-11 00:08:00   |1              
-----------------------------------------------------------
20      |25     |21     | 2011-10-11 00:09:00   |1
-----------------------------------------------------------
21      |18     |14     | 2011-10-11 00:10:00   |1
                .
                .
                .
-----------------------------------------------------------
15      |26     |23     | 2011-10-11 23:58:00   |1
-----------------------------------------------------------
17      |14     |32     | 2011-10-11 23:59:00   |1

表存储chan1,chan2和chan3值每一分钟。 我希望得到最大的&每10分钟的最小值,并且还具有相应的最小值/最大值的captureTime。

根据这些要求,如何编写SQL查询?谢谢!

-------- ---------编辑

使用mySql DB

---期望的输出---

从数据库中可以看出,chan1在00:08:00达到最小值,而chan2& chan3在第1个10分钟的间隔内在00:01:00达到最小值。剩下的10分钟将有相同的情况。在每10分钟的间隔中,chan1 / chan2 / chan3分别具有最小值/最大值。运行SQL查询后,需要返回这些最小/最大值及其关联的“captureTime”。

1 个答案:

答案 0 :(得分:0)

SYSDATE - (10/1440) 

根据此显示当前时间减去10分钟:http://www.akadia.com/services/ora_date_time.html

这应该是关于它的:

SELECT * FROM table WHERE captureTime > SYSDATE - (10/1440)