gpt4 book ai didi

php - 如何从 php 中的 mysql 表中查找平均值?

转载 作者:行者123 更新时间:2023-11-29 00:02:23 30 4
gpt4 key购买 nike

我需要计算评分表中 r1-r25 列的平均值。值 99 表示的列中会有空值。如何高效地找到 25 列的平均值?我用于单列的示例代码如下,

示例 PHP 代码

$s=0;
$n=0;
$res = mysql_query("SELECT * FROM ratings");

while($arr=mysql_fetch_array($res)){
$rat=$arr['r1'];
if($rat != 99)
{
$s=$rat+$s;
$n=$n+1;
$avg=$s/$n;
}
}

最佳答案

为这项工作使用数据库:

SELECT AVG(case when r1 <> 99 then r1 end) as r1_avg,
AVG(case when r2 <> 99 then r2 end) as r2_avg,
. . .
AVG(case when r25 <> 99 then r25 end) as r25_avg
FROM ratings;

这会更快,因为您不必将所有数据都带到应用程序中进行顺序处理。

它确实需要更多的输入(或使用电子表格生成代码)。这是因为您将数据存储在列中,而数据实际上应该在单独的行中——每行一行,每个内容和评级(可能还有评级数字)。使用该数据结构,查询将更短且性能更好。

另外,SQL 有一个很好的存储 NULL 值的机制,您应该使用它。它被称为 NULL,而不是“99”。

关于php - 如何从 php 中的 mysql 表中查找平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197016/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com