我在MySQL中有一个表,用于在一组实例中存储用户会话信息。该表的结构非常简单,有6个字段。
每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 :(得分: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)
在上面的查询中。