如何计算各行与返回值之间的负差作为总和?

例如(COL虚构的区别只是为了更好地理解):

id value fictional difference
0 63 0 -> ignrore
1 61 -2
2 55 -6
3 62 +7 -> ignore
4 57 -5
5 71 +14 -> ignore

目标将是所有负面差异的绝对总和:13.

有谁知道如何做到这一点吗? 我试过这个https://stackoverflow.com/a/29779698/12350648,但它不能解决我的问题...

推荐答案

select sum(if(valuediff<0,-valuediff,0))
from (
    select value-lag(value) over (order by id) as valuediff
    from mysterytablename
) valuediff

Mysql相关问答推荐

正在获取MySQL死锁,因为这个查询需要很长时间.

如何在Sequelize中将查询作为选项?

如何跨多个产品查找相同时间范围的数据集

基于多行从表中 Select

使用复合主键更新后的MySQL触发器失败

从MySQL JSON列中检索数组中的所有答案

MySQL Group by或Distinct in Window函数

MySQL中如何对字符串进行算术运算?

MySQL 可以用于将列表排序为三分之三吗?

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

按 SQL 删除分组前的重复项

如何在 Mysql 中创建复合外键

SQL 中的双杠 (||) 是什么意思?

MySQL PHP - Select WHERE id = array()?

如何在 MySQL 中为用户设置默认架构

如何使用 SQL 数据库中的经纬度查找最近的位置?

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录

MySQL查询/子句执行顺序

判断多个列的一个值

'LIKE ('%this%' OR '%that%') and something=else' 不起作用