2011-11-14 32 views
-1
----------------------------------------------------------- 
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 

表存储每1分钟chan1,chan2和chan3值。 我想每10分钟获取最大值&最小值,并且还具有相应的最小/最大值的captureTime。组每10分钟一次,并获得最小/最大值的'captureTime'

基于这些需求,如何编写sql查询?谢谢!

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

使用MySQL数据库

---所需的输出---

由于从DB观察,chan1在00:08:00达到最小值,并且chan2 & chan3都在第一个10分钟间隔的00:01:00达到最小值。其余10分钟将有相同的情况。在每10分钟的时间间隔内,chan1/chan2/chan3分别具有最小/最大值。在运行SQL查询之后,需要返回这些最小/最大值及其关联的“captureTime”。

+0

哪个DBMS? MySQL的? –

+0

你有什么试过?如果你想按代码做代码,那么你应该聘请一名顾问。堆栈溢出是针对特定问题的帮助。 – JNK

+0

你可以请发布所需的输出?我认为你的描述不太清楚。另外,请说这是哪个数据库 –

回答

0
SYSDATE - (10/1440) 

给你当前时间减去10分钟根据本:http://www.akadia.com/services/ora_date_time.html

这应该是这件事:

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

我刚刚读了一个关于Oracle的问题,并假设你也使用过这个问题。正如评论中提到的,这取决于你的数据库。 –