从 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 查询中计算列的平均值的主要内容,如果未能解决你的问题,请参考以下文章