我不确定这是否可以在单个查询中实现,但我试图用MySQL实现以下功能,但尚未找到解决方案。在MySQL中将SUM和AVG与GROUP BY结合使用
我有被构造有点像这样的表:
ID LOG_VALUE LOG_TIME
1 5000 19:05:42
2 6205 19:05:45
3 1000 19:05:40
1 5000 19:05:52
2 6403 19:05:55
3 1500 19:05:50
1 5000 19:06:02
2 6403 19:06:05
3 1500 19:06:00
行被插入该日志表定期即每10秒。我想查询记录来计算每分钟的综合平均log_value。
我的问题是我不知道如何计算每分钟的平均每个ID以及任何给定分钟的平均值的总和,只有一个或另一个。
从本质上讲,我想实现这个过程:
- 查找ID 1所有日志的平均值19:05
- 在19:05找到所有的日志,用于ID 2的平均
- 查找ID 3所有日志在19:05
- 平均添加平均值在一起以进行总共为19:05
- 执行相同的19:06
下面的SQL没有做我想做的事,但我已经包括它来帮助支持这个问题。
SELECT ROUND(AVG(log_value)) AS average_value, EXTRACT(HOUR_MINUTE FROM log_time)
FROM (`logs`)
GROUP BY MINUTE(log_time), id
ORDER BY log_time DESC
感谢您提供任何帮助。
这是一个简单的查询,希望我的MySQL这里测试真正的快,它应该是这样的: 选择ID,小时+“:”原木+分钟,平均(log_value) 组由ID,小时+” :'+分钟 – BlackTigerX