2011-11-14 28 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的問題,並假設你也使用過這個問題。正如評論中提到的,這取決於你的數據庫。 –