如何从数据库中获取特定数量的行(6 行)并获取这些值的平均值,然后将平均值输出为整数 [duplicate]

how to fetch specific number of rows (6 rows) from database and get average of those values , then output average to an integer [duplicate]

提问人:Ashutosh7i 提问时间:5/14/2022 更新时间:5/14/2022 访问量:203

问:

我正在创建PHP脚本以从包含[id,value,date]的数据库中获取输入,有很多行(使用API每分钟增加一次)。 我想每次都像 1to6 一样获取 6 行,然后执行它们的平均值(val1+2+3+4+5+6/6)并将该平均值存储到变量中。 这整个过程是连续的, 均值 1to6->average->outputin 变量 然后 6to12->average->outputin 变量 像那样

我正在使用 PHP,我做到了

$var=1;
$raw = "SELECT id, value, date FROM db";
$result = $conn->query($raw);

$row_cnt = $result->num_rows;

printf("Result set has %d rows.\n", $row_cnt);

if ($result->num_rows < $var) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    
    echo nl2br("\n");
    echo "price: " . $row["value"];
    echo nl2br("\n");
  }
$var++;

请给我解决我的问题的方法,❤php

php mysql 数组 mysqli

评论

1赞 Honk der Hase 5/14/2022
SELECT AVG(value) FROM (SELECT value FROM db LIMIT 6) t但这只会随机获取 6 条记录......您必须应用适当的 WHERE 条件才能进行更精确的选择(对不起,必须编辑两次)
0赞 Jared 5/14/2022
你能提供更多的代码来使你的目标更清晰吗?在这里,a的角色是相当不干净的。$var
0赞 Ashutosh7i 5/14/2022
谢谢你@HonkderHase你的SQL查询给了我得到平均值的想法,我做了一个查询,eveytime从数据库中获取6个新值,并对它们进行平均并输出平均值,这是结果-SELECT AVG(price) FROM (SELECT price FROM price ORDER BY no DESC LIMIT 0, 6) items;

答:

1赞 Ashutosh7i 5/14/2022 #1

我没有将数据从SQL获取到PHP脚本,而是使用此查询在SQL Server上对数据本身进行平均

SELECT AVG(table) FROM (SELECT table FROM db ORDER BY id DESC LIMIT 0, 6) items;

评论

0赞 Ashutosh7i 5/25/2022
这是我问题的正确方法,我将此命令保存为mysql服务器中的过程,并且每次输入新数据时都会执行,无论如何,它完成了我的工作,谢谢