我在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)
注意:以上是我们拥有数千行实际数据的示例数据。
答案 0 :(得分:3)
计算SUM(RowData) / #Rows
是RowData
的平均值 - 本身已经支持AVG
聚合函数:
select AVG(AcctSessionTime)
from radacct
where UserName='spatel' AND SipResponseCode='200';
如果需要,您还可以使用GROUP BY
语句执行分组平均值
答案 1 :(得分:2)
mysql> select sum(AcctSessionTime) div count(AcctSessionTime) as result from radacct where UserName='spatel' AND SipResponseCode='200';
| result |
+--------+
| 11 |
你可以试试这个。
答案 2 :(得分:1)
你可以试试这个:
Select AVG(AcctSessionTime) from radacct where UserName='spatel' AND SipResponseCode='200';