从mySQL中提取数据点

时间:2014-10-30 23:27:42

标签: mysql

我在MySQL中有一个表,用于在一组实例中存储用户会话信息。该表的结构非常简单,有6个字段。

  • 货号: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查询来以这种方式收集信息,并希望有人可以帮助我。

    提前感谢您的任何想法,

    干杯, 米奇

    1 个答案:

    答案 0 :(得分: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)
    

    在上面的查询中。