从 MYSQL 查询中计算列的平均值

Posted

技术标签:

【中文标题】从 MYSQL 查询中计算列的平均值【英文标题】:Calculate average of column from MYSQL query 【发布时间】:2012-02-03 21:06:43 【问题描述】:

我有一个表,我正在尝试计算列中值的平均值。这是我的查找:

SELECT SUM(P1_Score) AS value_sum FROM tblMatches Where P1_ID LIKE $playerID

知道如何确定平均值(值的总和/总行数)吗?

【问题讨论】:

奇怪的是,有一个名为:AVG 的分析就是这样做的:D link 仅供参考 - 您应该使用 PDO,而不是将 mysql 查询暴露给原始变量。 【参考方案1】:

你可以像这样使用AVG:

SELECT AVG(P1_Score)

【讨论】:

谢谢...它实际上是一个统计页面,用于过滤玩家并查看比赛结果。所以我想同时显示每场比赛的总比赛数和平均比赛数。 @DoubleA:然后执行不同的查询。他们没有共同点 听起来,如果您需要同一组的总数和平均值,您可能需要使用SELECT COUNT(*), SUM(P1_Score),您可以从中提取总和/总数并得出平均值。对于像 Rails 这样的框架,您一次只能向数据库发送一个查询,假设您的数据库在另一台服务器上,那么组合查询将为您节省一次往返。 他不需要两个查询只需要SELECT SUM(P1_Score), AVG(P1_SCORE) ... @Michael 感谢您的澄清,我并不是说他们需要 2 个查询【参考方案2】:

所以在你的情况下:

$gameswon = mysql_query("SELECT AVG(P1_Score) AS value_sum 
                         FROM tblMatches 
                         WHERE P1_ID LIKE '".$playerid."'");

【讨论】:

【参考方案3】:

尝试使用 AVG() 聚合函数而不是 SUM

$gameswon = mysql_query("SELECT AVG(P1_Score) AS value_sum FROM tblMatches Where P1_ID LIKE '".$playerid."' . "GROUP BY XXXX");

而 XXXX 是您想要平均的列,例如播放器

【讨论】:

以上是关于从 MYSQL 查询中计算列的平均值的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 聚合函数 和 分组查询(初级)

MySQL 聚合函数 和 分组查询(初级)

如何计算两列的平均值?微软访问

MySQL获取组中每x分钟的列的平均值和总和

如何在 MySQL 中汇总表以获得基于几列的 3 个月平均收入?

我应该如何用其他两列的平均值更新 MySQL 表列?