我试图将整个列(数据)除以column(5)的数目,然后将其插入另一列(数据平均值):
数据:20 12 32 12 32
数据平均值:20/5 12/5 32/5 12/5 32/5
我可以使用查询:
update data set data_average = data / 5;
它可以工作,但是我知道当我向data列中添加更多数据时,它将不再是/ 5。
所以我尝试使用查询来动态地使其:
select count(*) as count from table
但是我无法像
那样进入第一个查询update data set data_average = data / count;
如何将其除以计数?
答案 0 :(得分:0)
MySQL具有AVG()函数可以为您完成此工作。这样您的查询就可以完成所有工作,例如:
SELECT AVG( column_name ) AS average FROM table_name;
以供参考:https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_avg
如果您希望使用CodeIgniter / PHP进行此操作,则可以这样做:
<?php
$query = $this->db->query('SELECT * FROM tablename');
$results = $query->result();
$rowCount = count( $results );
$total = 0;
foreach( $results as $row )
$total += $row->column_name;
$average = $total / $rowCount;