【问题标题】:Divide entire column by number of column将整列除以列数
【发布时间】:2019-05-05 01:34:33
【问题描述】:

我试图将整列(数据)除以列数(5)并将其插入另一列(数据平均值):

数据:20 12 32 12 32

数据平均:20/5 12/5 32/5 12/5 32/5

我可以使用查询:

update data set data_average = data / 5;

它有效,但我知道当我向数据列添加更多数据时,它将不再是 /5。

所以我尝试使用查询使其动态化:

select count(*) as count from table

但我无法像

那样进行第一个查询
update data set data_average = data / count;

如何让它除以计数?

【问题讨论】:

  • 怎么样:更新数据集 data_average = data / (select count(*) from table);
  • update data set data_average = data/(SELECTCOUNT(*)FROMINFORMATION_SCHEMA.COLUMNS WHERE table_name = 'data')

标签: php codeigniter phpmyadmin


【解决方案1】:

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;

【讨论】:

  • 注意,w3schools会在这里触发一些人,而不是使用官方文档。
  • @maio290 ,我修好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-23
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 2019-01-03
相关资源
最近更新 更多