Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取一行中数字的平均值SQL(Sqlite3)_Python_Sql_Sqlite_Average - Fatal编程技术网

Python 获取一行中数字的平均值SQL(Sqlite3)

Python 获取一行中数字的平均值SQL(Sqlite3),python,sql,sqlite,average,Python,Sql,Sqlite,Average,我有一个表,其中每一行都有数字,我希望最后一列对行中的所有数字求平均值。我该怎么做?平均值不是针对同一标题下某列中的所有数字,而是针对该行中的所有数字。每一行代表不同的用户,因此如果我是用户1(第一行),我希望我的平均值为(2+3+4+2+6+3)/6=3.33(显示在第1行的平均值列中)。我想在输入表后选择一行,选择适当的条目,平均数字,然后将结果插入表的avg列,但我不知道如何用python编写代码(特别是如何选择行中的单个数字)。提前感谢你的帮助 表结构: 只需使用生成的列: alter

我有一个表,其中每一行都有数字,我希望最后一列对行中的所有数字求平均值。我该怎么做?平均值不是针对同一标题下某列中的所有数字,而是针对该行中的所有数字。每一行代表不同的用户,因此如果我是用户1(第一行),我希望我的平均值为(2+3+4+2+6+3)/6=3.33(显示在第1行的平均值列中)。我想在输入表后选择一行,选择适当的条目,平均数字,然后将结果插入表的avg列,但我不知道如何用python编写代码(特别是如何选择行中的单个数字)。提前感谢你的帮助

表结构:

只需使用生成的列:

alter table t add column avg6 numeric generated always as
    ((header1 + header2 + header3 + header4 + header5 + header6) / 6.0);
这样,您就不必担心值与数据不同步。查询时进行计算

这是一个SQL小提琴

或者,可以将计算放在视图中:

create view v_t as
    select t.*,
           ((header1 + header2 + header3 + header4 + header5 + header6) / 6.0)
    from t;

如果您使用的是SQLite 3.31.0之前的版本,则无法使用生成的列,这将是适合这种情况的解决方案。

在任何情况下,在表中存储计算列都不是一个好主意。
您可以创建视图或运行如下查询:

select *,
  (
    coalesce(header1, 0) + coalesce(header2, 0) + coalesce(header3, 0) + 
    coalesce(header4, 0) + coalesce(header5, 0) + coalesce(header6, 0)
  ) / 6.0 as avg_header
from tablename
where .....
得到你想要的。

对于您的表,您需要一个
更新
语句:

update tablename
set "Avg" =  (
               coalesce(header1, 0) + coalesce(header2, 0) + coalesce(header3, 0) + 
               coalesce(header4, 0) + coalesce(header5, 0) + coalesce(header6, 0)
             ) / 6.0
where ............

请使用文本重新发布表格结构。很多人就是看不到这些图像。
(header1+header2+header3+header4+header5+header6)/6.0
,当这些列为空时,get更复杂谢谢戈登。但我在这方面有一个错误。RuntimeError:near“as”:语法error@jlynn . . . 它还需要始终生成的
。仍然会得到相同的错误。是否需要按名称调用avg列?@jlynn必须使用最新版本的SQLite才能生成列。