MySQL获取结果,总结一下

时间:2011-10-31 18:04:45

标签: 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

ID 3我将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条记录来做。有什么帮助吗?

编辑:抱歉,我忘了补充一点,我必须先对每张唱片做平均值。

3 个答案:

答案 0 :(得分:2)

SELECT AVG(valueA + valueB + valueC)
FROM teams

应该做的伎俩。由于您从表中选择了所有记录,因此需要进行分组。

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

答案 1 :(得分:0)

You can将SQL函数加在一起:

SELECT
    (sum(ValueA) + sum(ValueB) + sum(ValueC)) / 3 as average
FROM
    <your table>
WHERE
    <your conditions>

答案 2 :(得分:0)

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

那就是你想要的平均值。