сумма разностей между двумя строками в mysql - PullRequest
0 голосов
/ 26 мая 2020

enter image description here

Выше таблица, и мне нужно получить общее расстояние, пройденное шиной.

Ищете способ получить разницу - сумму, чтобы получить общее пройденное расстояние.

Каждое - общее расстояние, если оно получено суммой разницы между разделением действий «удаление» И «вставка».

Конечный результат должен быть 1100 + 300 = 1400

1 Ответ

0 голосов
/ 26 мая 2020

Если всегда есть только одна '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 
...