sql—mysql中两行之间的差异之和

t40tm48m  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(274)


上面是一张表,我需要得到轮胎覆盖的总距离。
寻找一种方法来得到差和得到总距离。
如果通过“删除”和“插入”动作共享之间的差之和获得,则每个动作共享的总距离。
最终结果应为1100+300=1400

zc0qhyus

zc0qhyus1#

如果总是只有一个 'insert' 还有一个 'removal' 每行 tyre 以及 position ,可以使用条件聚合来计算元组覆盖的距离,然后在 tyre 级别:

select tyreId, sum(distance_covered) distance_covered
from (
    select 
        tyreId, 
        position, 
        sum(case action when 'removal' then distance else - distance end) distance_covered
    from mytable
    where action in ('insert', 'removal')
    group by tyreId, position
)t
group by tyreId

相关问题