上面是一张桌子,我需要得到轮胎覆盖的总距离。
寻找一种方法来求出差值之和,以得出所覆盖的总距离。
每个总距离(如果通过“删除”和“插入”操作共享之间的差总和得出)。
最终结果应为1100 + 300 = 1400
答案 0 :(得分:0)
如果每个'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