2014-10-30 88 views
0

我在MySQL中有一個表格,用於存儲一組實例中的用戶會話信息。該表的結構非常簡單,有6個字段。從mySQL中提取數據點

  • 貨號:37824
  • 時間戳:2014-10-30 23點01分41秒
  • 活動:14
  • 空閒:2
  • 總計:16
  • 服務器:
  • 度量標準每5分鐘收集一次。

    我有一個查詢,它將過去5分鐘的其中一個度量標準的總和。

    select SUM(metric_activeSessions) from metrics_tbl WHERE metric_timeStamp > NOW() - INTERVAL 5 MINUTE 
    

    我想根據這些指標構建一個圖表,使用許多偉大的圖書館之一,但尚未確定。

    我希望圖表以60分鐘爲間隔每5分鐘顯示一次給定度量的總和。

    - 09:00 : 12 
    - 09:05 : 15 
    - 09:10 : 18 
    - 09:15 : 21 
    - 09:20 : 28 
    

    我不知道如何編寫SQL查詢以這種方式收集信息,並希望有人在那裏可以幫助我。

    預先感謝您的任何想法,

    乾杯,米奇

    +0

    那麼你有查詢已經每5分鐘運行一次。有什麼問題? – Sebas 2014-10-30 23:32:09

    +0

    查詢返回NOW()的5分鐘進程的SUM,但爲了在過去的60分鐘內動態構建給定度量的圖表,我需要能夠返回每5分鐘塊的SUM之前在查詢運行的時間。因此,例如,如果我在上午10:00運行報表,我希望查詢返回SUM值,間隔09:00-09:05-09:10 ...直到10:00。 – MitchyBGood 2014-10-30 23:53:21

    回答

    1

    假設metric_timeStamp被格式化爲一個mysql時間戳,嘗試這樣的事情..

    SELECT SUM(metric_activeSessions), MAX(metric_timeStamp) as max_time, MIN(metric_timeStamp) as min_time, 
    FROM metrics_tbl 
    WHERE metric_timeStamp > NOW() - INTERVAL 60 MINUTE 
    GROUP BY unix_timestamp(metric_timeStamp) div 300 
    

    使用,作爲一個初始點。我現在正在吃冰淇淋,所以我不能自己做這個,但這是一般的想法。

    編輯:固定的語法問題

    編輯2:我是通過進行10分鐘的分組。它改變了5分鐘

    編輯3:如果行中包含運行總計,然後更改

    SUM(metric_activeSessions) 
    

    MAX(metric_activeSessions) 
    
    在上面的查詢

    +0

    感謝您的快速回復!雖然迴應似乎有點不合適。 '5619,5907,6184,6455,6697。我知道這些數字在過去一小時內是不正確的。它增加了一些東西,不能完全解決問題。 – MitchyBGood 2014-10-30 23:54:10

    +0

    如果您在sqlfiddle,http://sqlfiddle.com中創建一個表,並附上一些示例數據,我會爲您提供更精確的sql語句 – foxygen 2014-10-30 23:57:07

    +0

    請參閱編輯#3。它看起來像你可能正在存儲運行總計 – foxygen 2014-10-31 00:16:00