更新列的 SQL 语句

标签 sql database oracle sql-update

我有一个包含以下值的表 T1

Table

我需要一个带有附加列的结果表,该列是最新的平均值。 即,

x1=1000.45

x2= (1000.45+2000.00)/2

x3= (1000.45+2000.00+3000.50)/3

x4= (1000.45+2000.00+3000.50+4000.24)/4

结果表应如下所示:

expected result

我需要在Oracle数据库中编写SQL语句来向结果表添加一列,其中列值为x1、x2、x3、x4。

最佳答案

为此您需要使用分析函数。我未经测试的SQL如下:

SELECT
 date,
 division,
 sum_sales,
 AVG( sum_sales ) OVER ( ORDER BY date ROWS UNBOUNDED PRECEDING )
FROM
 table;

date 是 Oracle 中的保留字,因此如果您使用它作为真实的列名,则需要将其包含在引号中。

关于更新列的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428644/

相关文章:

sql - 根据匹配的位置对通配符搜索的结果进行排序

php - Mysqli准备语句(SQL注入(inject)预防)

sql查询-分组然后加入

database - 在 PL/SQL 中创建触发器抛出编译错误

javascript - 如果表中的行具有特定值,则显示该行

sql - 当行计数大于 1.000.000 时,Oracle APEX 呈现数据的速度变慢

sql - MySQL优化语句

sql - 如何firebird将字符串不同的行转置为列

sql - 更新触发器未在 plpgsql 中触发

mysql - 如何使用 MySQL 在表中创建嵌套 AUTO_INCRMENT 字段?