MySQL获取结果,总结一下

MySQL获取结果,总结一下,mysql,Mysql,我试图将一条记录中的值求和(A),然后将其添加到另一条记录中的和值(B),我想知道这是否可行 ID ValueA ValueB ValueC 1 5 5 5 2 1 2 3 3 6 3 3 所以我在这里要做的是取每个记录的ValueA,ValueB和ValueC,把它们加起来,这样我就可以得到一个平均值 所以 ID 1,15除以3=5 ID 2我将用6除以3=2

我试图将一条记录中的值求和(A),然后将其添加到另一条记录中的和值(B),我想知道这是否可行

ID    ValueA   ValueB   ValueC
1       5        5        5
2       1        2        3
3       6        3        3
所以我在这里要做的是取每个记录的ValueA,ValueB和ValueC,把它们加起来,这样我就可以得到一个平均值

所以 ID 1,15除以3=5

ID 2我将用6除以3=2

我要12除以3=4

然后我必须把这三个加起来 我要11个 然后除以3,得到平均值3.67

我的问题

$result = mysql_query('SELECT * FROM teams WHERE UPPER(team)=UPPER("'.$team.'")');
while($row = mysql_fetch_array($result))
{
$ValueA = $row['ValueA'];
$ValueB = $row['ValueB'];
$ValueC = $row['ValueC'];
$All = $ValueA + $ValueB + $ValueC;
}
我知道如何获得1条记录的总和,但不确定如何使用所有3条记录。有什么帮助吗

编辑:抱歉,我忘了添加一条,我必须先对每条记录进行平均。

将SQL函数相加:

SELECT
    (sum(ValueA) + sum(ValueB) + sum(ValueC)) / 3 as average
FROM
    <your table>
WHERE
    <your conditions>
选择
(总和(值A)+总和(值B)+总和(值C))/3作为平均值
从…起
哪里
我们应该做到这一点。由于您要从表中选择所有记录,因此不需要分组

请注意,默认情况下MySQL对表使用不区分大小写的排序规则,因此可能不需要您的
UPPER(team)
业务—删除函数调用将允许将索引(如果有的话)应用于该特定匹配

SELECT SUM(ValueA + ValueB + ValueC) / (SELECT COUNT(*) FROM Teams)
FROM Teams

这就是你想要的平均值。

谢谢你的回复,但我刚刚更新了我的帖子,我忘了我必须先对每条记录进行平均,然后再对每条记录的总和进行平均。然后将其除以3,得到所有列的结果(OP的值为3.67)。
AVG((valueA+valueB+valueC)/3)
在这种情况下。但它必须是每条记录的总和,然后除以它拥有的记录数?平均值将自动执行“所有记录的总和除以行数”。因此,在您的情况下,对于3行,它应该是
(row1+row2+row3)/3
,您不需要为此选择两个选项。你可以除以另一个聚合(
count(*)
),或者像Marc B那样使用平均值。是的,有一秒钟我忘记了平均值,我对他的问题投了赞成票。谢谢
SELECT SUM(ValueA + ValueB + ValueC) / (SELECT COUNT(*) FROM Teams)
FROM Teams