sql - 如何将选择结果存储到同一张表中的新列?
问题描述
我正在使用 IBM 的 DB2。我有一张表
stockdb(date, close)
,我正在计算它的 30 天移动平均值并将其存储到同一张表中。
alter stockdb
add ma as avg("close")
over
(order by "date" rows between 29 preceding and current row)
from stockdb;
解决方案
您不能将其作为计算列执行,因为不允许使用窗口函数。改用视图:
create view v_stockdb as
select s.*,
avg("close") over (order by "date" rows between 29 preceding and current row) as ma
from stockdb s;
推荐阅读
- typescript - 如何修复“缺少类属性转换”
- reactjs - Nextjs 路由器未正确更改页面源
- azure-ad-b2c - 使用经过验证的电子邮件和经过验证的电话的 AAD B2C 注册或登录
- r - 在汇总表中删除空类别组
- android - AS 4.1.3.:对于要导入的每个类,每个 `import Android...` 语句都标记有“无法解析符号 ...”,从而导致许多其他错误
- angular - 使用exceljs将图片设置为Excel
- reactjs - 如何显示更新的状态?
- log4j2 - log4j2,yml - ThreadContext 值为空
- python - 使用 xpath 和 regex 获取单个链接上的文本
- c# - 重定向到另一个页面后如何保留树视图?