sql - SQL - 计算变量更新值的总和
问题描述
我是 SQL 新手,遇到以下问题。
我想总结到达我的设备的错误总数。
所以,假设我有内部my_table
变量名称SeqErr
和TotalSeqErr
.
我将它们初始化0
并验证了它,但是当我执行以下操作时:
UPDATE my_table
SET
...
SeqErr = COALESCE(SeqErr, 0) + 1,
TotalSeqErr = SeqErr,
...
我看到当我检索此表时,它带有以下值:
SeqErr = 1
,TotalSeqErr = 0
(即已SeqErr
更新但TotalSeqErr
使用旧SeqErr
值而不是更新值)。
我该如何解决这个问题?
注意:这里可能有与我类似的问题,但我找不到。
解决方案
如果您希望TotalSeqErr
使用“新” SeqErr
,您可以像更新一样更新它SeqErr
:
...
SeqErr = COALESCE(SeqErr, 0) + 1,
TotalSeqErr = COALESCE(SeqErr, 0) + 1,
...
您可以想象更新是一次完成的,而不是一行一行的。因此,等号右侧的内容指的是旧值,即使您将它们设置为上面一行的新值。
推荐阅读
- javascript - 如何在 Vue JS 中添加额外的 url
- c++ - C ++使用参数创建线程函数导致转换错误
- mysql - 在spring jpa中锁定10行进行处理然后删除
- typescript - 如何在 VSCode 中设置 SAPUI5 Javascript 自动完成?
- c# - 显示 MessageBox 时如何防止表单最大化?
- python - 如何绘制 SciKit-Learn 线性回归图
- java - 使用带有 Spring Security 的 Azure AD 高级自定义角色进行基于角色的访问
- graphics - VKRay/DXR:你的“有效载荷”结构中存储了哪些信息?
- java - 我不小心复制了这个窗口,我该如何撤消它?
- tensorflow - 在编译模型之后或之前加载权重是否重要?