MySQL查询总和结果除以行数(平均)

标签 mysql sql linux syntax

我在 MySQL 中有以下数据,我想求和(总计)然后除以行数。

例子:

我想对 AcctSessionTime 列中的所有数字求和并将其除以项目数,所以在我们的例子中 6+4+3+31=44 将它们除以 4行数。

我如何设计查询以在单个查询中完成所有操作?

mysql> select AcctStartTime,AcctStopTime,AcctSessionTime 
       from radacct 
       where UserName='spatel' AND SipResponseCode='200';
+---------------------+---------------------+-----------------+
| AcctStartTime       | AcctStopTime        | AcctSessionTime |
+---------------------+---------------------+-----------------+
| 2015-06-04 15:32:03 | 2015-06-04 15:32:09 |               6 |
| 2015-06-04 16:11:27 | 2015-06-04 16:11:31 |               4 |
| 2015-06-04 16:13:37 | 2015-06-04 16:13:40 |               3 |
| 2015-06-05 11:44:31 | 2015-06-05 11:45:02 |              31 |
+---------------------+---------------------+-----------------+
4 rows in set (0.00 sec)

注意:上面是示例数据,我们有数千行的实际数据。

最佳答案

计算 SUM(RowData)/#RowsRowData 的平均值 - 这已经作为 AVG 聚合函数得到原生支持:

select AVG(AcctSessionTime) 
from radacct 
where UserName='spatel' AND SipResponseCode='200';

如果需要,您还可以使用 GROUP BY 语句进行分组平均

关于MySQL查询总和结果除以行数(平均),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30672016/

相关文章:

php - 检查数据库中是否已存在用户名或电子邮件

c# - 将上传的文件存储在数据库中或将其存储在文件系统中哪个好

linux - awk 命令,打印在 csv 文件中只出现一次的行

linux - RedHat 中的手指信息从何而来?

php - 根据 'closest' 匹配 'earlier' 行替换当前行中的 NULL 值。 (基于日期的表格)

java - 不用Entity类通过Hibernate获取数据

php - 如何根据数组的长度循环数组

java - 如何从 IntelliJ IDEA 14 连接到 Oracle Database 12c HR 模式

javascript - 如何在javascript中获取sqlite数据库值

c - 绑定(bind)到 ANY 接口(interface)的缺点